IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> react 、vue 跨域 -> 正文阅读

[JavaScript知识库]react 、vue 跨域

react 、vue 跨域

何为跨域:当当前页面地址的协议、域名、端口三者之间任意一个与请求地址的不同即为跨域

当前页面地址被请求的地址是否跨域原因
http://www.hxhshr.com:8080/http://www.hxhshr.com:8080/login同源(协议/域名/端口号相同)
http://www.hxhshr.com:8080/https://www.hxhshr.com:8080/跨域协议不同(http/https)
http://www.hxhshr.com:8080/http://bbb.hxhshr.com:8080/跨域域名不同(www/bbb)
http://www.hxhshr.com:8080/http://www.hxhshr.cn:8080/跨域域名不同(com/cn)
http://www.hxhshr.com:8080/http://www.bbb.com:8080/跨域域名不同(hxhshr/bbb)
http://www.hxhshr.com:8080/http://www.hxhshr.com:8081/跨域端口号不同(8080/8081)

解决跨域方法1:http-proxy-middleware中间件

前提:

//新版node中-save参数可以省略不写
npm i http-proxy-middleware

第一步:在src目录下新建setupProxy.js文件(文件名称必须是这个)

然后写入

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
    app.use(
        //第一个代理
        createProxyMiddleware("/api", {// 这个"/api"参数告诉你只要请求地址是以/api开头的就使用这个代理,将把当前地址修改为http://localhost服务器地址
            target: "http://localhost", //服务器地址1
            changeOrigin: true,//是否开启跨域
            logLevel: "debug",//打印
            pathRewrite: { "^/api": "" },//
        }),
        //第二个代理
        createProxyMiddleware("/apq", {
            target: "http://localhost:8080",//服务器地址2
            changeOrigin: true,
            pathRewrite: { "^/apq": "" },
        })
    );
};

配置说明:我这个文件可以代理多个,这就为以后项目做大了,有很多台服务器做准备,一个createProxyMiddleware是一个代理,app相当于工厂,createProxyMiddleware是工厂里的房子。

当然配置多个代理你可以用多个工厂,一个工厂一个房子也行,只不过有点浪费,比如:

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
    //第一个代理工厂
    app.use(
        createProxyMiddleware("/api", {
            target: "http://localhost", 
            changeOrigin: true, 
            logLevel: "debug",
            pathRewrite: { "^/api": "" }, //重写路径(old path, new path),把路径中的/api换成空
        })
    );
    //第一个代理工厂
    app.use(
        createProxyMiddleware("/apq", {
            target: "http://localhost:8080", 
            changeOrigin: true, 
            logLevel: "debug",
            pathRewrite: { "^/apq": "" }, 
        })
    );
};

第二步:发送请求(利用axios)

前提下载axios

npm i axios

记得要文件引入axios import axios from "axios";

//对应上面的第一个代理
axios.get("/api/findUsers").then(
//咱发送的请求开头是/api,所以第一个代理检测到/api后就开始
//做代理把原来的协议、域名、端口统统换为http://localhost,
//目前地址相当于http://localhost/api/findUsers,然后第一个
//代理又重写了路径,把路径中的/api换成空,所以最终请求路径
//相当于http://localhost/findUsers。完成跨域
    (res) => {
        console.log(res);
    },
    (err) => {
        console.log(err);
    }
);
//对应上面的第二个代理
axios.get("/apq/findUsers1").then(
    (res) => {
        console.log(res);
    },
    (err) => {
        console.log(err);
    }
);

第三步测试:开启两台服务器一个80端口接口是/findUsers,一个8080端口接口是/findUsers1,

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
去前端测试吧:
启动项目:
在这里插入图片描述
浏览器:
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:46:33  更:2022-10-31 11:47:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 20:16:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码