kuayu react_React开发环境跨域问题解决

前言

create-react-app搭建的项目中,请求需要处理跨域问题

解决方案

找到webpackDevServer.config.js

image.png

寻找proxy

image.png

3.普通代理修改为

proxy: {

'/postApi': {

target: 'http://' + 192.168.0.2:8080,

changeOrigin: true,

secure: false,

},

'/xxx': {

target: 'http://' + IP地址:端口, //访问目标

changeOrigin: true, //是否为域名

pathRewrite: { //重写地址

"^/xxxi": "/"

},

ws: true, //是否是长连接

secure: false, //是否https

},

}

4.比如,http://192.168.0.2:8080是服务器,需要请求postApi这个接口,而192.168.0.1是本地IP地址。因为要使用webpack的代理,所以本地所有请求都换成 http://192.168.0.1:3000(自己的端口),而这个时候webpack服务会代理转发到http://192.168.0.2:8080/postApi中完成跨域问题。

5.pathRewrite用法,http://192.168.0.2:8080/postApi是请求接口,pathRewrite写 /postApi : /xxx 访问的地址是http://192.168.0.2:8080/xxxx,适合多方请求,接口名称有重命名的问题

6.websockt代理,ws改为true 跟普通代理一致

结尾

当前用的是新webpack,旧项目需要注意

React 中使用 Axios 进行网络请求时,解决跨域问题可以通过以下方法: 1. 在后端服务器开启 CORS:在后端服务器的响应头中添加 CORS 相关的头信息,允许指定的域名进行跨域访问。可以在后端的响应中添加如下的头信息: ``` Access-Control-Allow-Origin: http://localhost:3000 // 允许访问的域名 Access-Control-Allow-Methods: GET, POST, PUT, DELETE // 允许的请求方法 Access-Control-Allow-Headers: Content-Type // 允许的请求头 ``` 请注意,在生产环境中,应该限制允许跨域访问的域名,避免安全风险。 2. 使用代理服务器:可以在开发环境中使用代理服务器来解决跨域问题。在 React 的配置文件(例如 `package.json` 或 `webpack.config.js`)中,将代理服务器的地址配置为 Axios 请求的基础路径。例如: ```javascript axios.defaults.baseURL = '/api'; // 代理服务器的地址 ``` 然后,在网络请求时,只需使用相对路径即可。 3. JSONP (仅适用于 GET 请求):如果后端支持 JSONP,可以使用 Axios 发送 JSONP 请求来避免跨域问题。通过将 `callback` 参数添加到请求 URL 中,使得响应返回一个函数调用。例如: ```javascript axios.get('http://api.example.com/data?callback=handleResponse') .then(response => { // 处理响应数据 }) .catch(error => { // 处理错误 }); ``` 在全局作用域下定义 `handleResponse` 函数,用于处理响应数据。 以上是一些常见的解决跨域问题的方法,你可以根据你的具体情况选择适合的方法。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值