react 解决跨域其实是有两种方法的~~~ 咋们先来看一下第一种方法
1)在 pachage.json 文件中配置
"proxy":"后端的接口地址"
但是上述这种方法配置之后,只能使用一个代理,那如果项目中需要配置多个代理的话就会拉跨
我们来看看第二种方法!!
2)创建 setupProxy.js 中配置代理
const {createProxyMiddleware} = require('http-proxy-middleware') module.exports = function(app){ app.use( createProxyMiddleware('/api1',{//遇见/api1前缀的请求,就会触发该代理配置 target:'http://localhost:5000', //请求转发给谁 changeOrigin:true, //控制服务器收到的响应头中Host字段的值 pathRewrite:{'^/api1':''} //重写请求路径(必须要做) }), createProxyMiddleware('/api2',{ target:'http://localhost:5001', changeOrigin:true, pathRewrite:{'^/api2':''} }) ) }
在 require 中结构出 createProxyMiddleware 这个方法,然后通过 module . exports 模块抛出一个函数,假设 这个函数的参数是 app 那么就使用 app.use 的方法在里面使用 createProxyMiddleware 这个方法
createProxyMiddleware 直接翻译过来就是 创建 代理 中间件 的意思
首先需要设置代理的同一前缀,通过 target 写入后端的接口地址
changeOrinig 用来设置是否需要跨域 是一个布尔值 一般都是写入 true
那么 pathRewrite 是用来重写请求路径的
因为虚拟的前缀是加在真正的接口上面的,在使用完之后需要清除掉(设置为空)
时小记,终有成。