多种解决react中跨域问题方案

在网上看到了多种解决react跨域的方法,但是在实际的项目中并不是所有的方法都是可行的。

一、最简单的操作

在package.json中加入

"proxy": "http://localhost:8000"

然后你页面中的请求fetch('/api/userdata/')就会转发到proxy中的地址

也就是真实的请求是http://0.0.2.89:7300/api/userdata/,而且也不会有跨域问题

因为在浏览器看来,你只是发了fetch('/api/userdata/'),没有跨域问题

二、添加多个代理

在package.json中加入

"proxy": {

"/api": {

"target": "http://localhost:8000",

"changeOrgin": true

},

"/app": {

"target": "http://localhost:8001",

"changeOrgin": true

}

},

使用方法

axios.post('/api/users').then(res =>{

console.log(res)

})

但是当重新执行npm start时会报错,说"proxy"的值应该是一个字符串类型,而不能是Object。

其原因是由于react-scripts模块的版本过高,需要删除到原目录下node_modules中的react-scripts文件夹,安装低版本

npm install react-script@1.1.1 --save

的确跨域问题可以解决了,但是又出现了新的问题,我在项目中使用了sass,当把react-scripts改为低版本后并不支持对sass的解析,如果要想支持sass的话,需要到 node_modules/react-scripts/config中进行配置,但是并不推荐你这样做。

三、最佳推荐

下载 http-proxy-middleware

npm i http-proxy-middleware --save

创建 src/setupProxy.js

const proxy = require('http-proxy-middleware')

module.exports = function(app) {

// /api 表示代理路径

// target 表示目标服务器的地址

app.use(

proxy('/api', {

// http://localhost:4000/ 地址只是示例,实际地址以项目为准

target: 'http://localhost:4000',

// 跨域时一般都设置该值 为 true

changeOrigin: true,

// 重写接口路由

pathRewrite: {

'^/api': '' // 这样处理后,最终得到的接口路径为: http://localhost:8080/xxx

}

})

)

}

kuayu react_多种解决react中跨域问题方案相关推荐

  1. ajax 没有权限 -quot;跨域quot;,如何解决AJAX中跨域访问出现'没有权限'的错误

    如何解决AJAX中跨域访问出现'没有权限'的错误 很多人在使用AJAX调用别人站点内容的时候,JS会提示"没有权限"错误,这是XMLHTTP组件的限制-安全起见 禁止访问非同域的网 ...

  2. React中跨域问题的完美解决方案

    React中跨域问题的完美解决方案 参考文章: (1)React中跨域问题的完美解决方案 (2)https://www.cnblogs.com/piaobodewu/p/10034440.html 备 ...

  3. 前端跨域请求get_解决前端跨域问题方案汇总

    1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a. ...

  4. php json -gt;访问,【转】Php+ajax+jsonp解决ajax跨域问题

    首先:jsonp是json用来跨域的一个东西. 原理是通过script标签的跨域特性来绕过同源策略. 发送端: $.ajax({ type : "post", url : &quo ...

  5. WebLogic12.1.1中跨域问题的探讨以及几种常见中间件中跨域问题的解决方法

    WebLogic12.1.1中跨域问题的探讨以及几种常见中间件中跨域问题的解决方法 参考文章: (1)WebLogic12.1.1中跨域问题的探讨以及几种常见中间件中跨域问题的解决方法 (2)http ...

  6. React项目中跨域问题的解决方案

    React项目中跨域问题的解决方案 参考文章: (1)React项目中跨域问题的解决方案 (2)https://www.cnblogs.com/Kailey/p/9199518.html 备忘一下.

  7. python web开发中跨域问题的解决思路

    python web开发中跨域问题的解决思路 参考文章: (1)python web开发中跨域问题的解决思路 (2)https://www.cnblogs.com/mqhpy/p/11445071.h ...

  8. 关于Springboot中跨域问题的解决(Response to preflight request doesn‘t pass access control check)

    Springboot中跨域问题的解决 等不及的小伙伴,直接跳到结论部分即可,谢谢!!! 1. 背景 1.1 使用技术栈 Spring Security Springboot Vue.axios Jwt ...

  9. vue解决线上跨域的问题_Vue项目中跨域问题解决方案

    方法 后台更改header 使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建) Jquery jsonp 后台更改header header('Access- ...

最新文章

  1. 遍历百万级Redis的键值的大结局
  2. 【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
  3. C++ 输出当前所在的路径
  4. 如何使用soapUI模拟webservice客户端发送请求
  5. Localdatetime
  6. CentOS离线安装gcc环境(附安装包+图文并茂)
  7. AD19 add pins to nets错误_为什么我认为Rust的Result错误处理方式不如Exception
  8. 专注于 web报表, web打印, 自定义web表单, web工作流管理系统 方面的技术
  9. LeetCode自我总结(对链表进行插入排序)
  10. html中高与行高的区别,CSS中line-height与height有什么区别
  11. (备忘)卸载微软自带输入法
  12. 【海报设计灵感】潮翻天的波普艺术海报设计
  13. 30个php操作redis常用方法代码例子
  14. C++-实现日志log功能
  15. java前端 js弹出框_前端js弹出框组件使用方法
  16. PADS2007库转换为PADS 9.0以上库文件
  17. 积木导出pdf打不开文件,后台报空指针
  18. 2019年通信工程考研初试经验帖(366分)
  19. 这十本书有望成为第四届橙瓜网络文学奖年度十大玄幻作品!
  20. python 主成分分析 (PCA)

热门文章

  1. 建筑设备自动化——I/O接口数字量与模拟量
  2. 搭建Vcenter 实现统一管理 esxi
  3. 封装uniapp网络请求, 统一管理接口和怎么使用(完整版)
  4. 计算机财务管理系统是,计算机财务管理系统创新思索.doc
  5. 计算某地的从日出到日落各时刻的水平面直射和散射辐射,倾斜面总辐射的Python程序
  6. 简单利用HUDText插件实现血条和怪物伤害减血效果
  7. SEO按天扣费系统源码/SEO计费系统/关键词计费扣费系统/关键词排名查询系统
  8. 办公资源分享:五个实用的在线网站
  9. Python绘图时将字体改为新罗马字体的方法
  10. C# excel 单元格居中