react axios 跨域访问一个或多个域名问题
1.react + axios 跨域访问一个域名
配置非常简单,只需要在当前的 package.json 文件里面配置:
"proxy":"http://iot-demo-web-dev.autel.com", //当然,这里是一个假地址
像这样:
这样跨域便完成了,当然,也可以像网上那样,多几段代码,像这样:
我不知道你们写入这段代码会怎么样,反正我是会报错,具体报错是怎么我这里没办法展示,因为我的项目已经 运行了 npm run eject
这个命令
报错的意思大概就是 proxy 希望得到的是一个字符串,而现在得到的是一个对象,所已我只能采取 第一张图片的方法进行跨域
而后我们安装axios ,当然,其他的也行,在 src 目录项目建一个 api文件, 再在api文件里面建一个 user.js 写上下面这段代码
import axios from 'axios' export function _user(data) { return axios.get('device/detail', data) }
我这里的跨域使用的是第一张图片上的那种跨域
在你需要发送请求的地方写上以下代码:
import { _user } from '../api/user' componentDidMount() { let res = _user({}) console.log(res) }
接下来咱们就能愉快的获得后台给我们的数据了
上面的那种跨域呢,可以说是非常方便,但是吧,如果后台给我们两个甚至三个不同的域名呢 怎么办,那我们就得使用插件
2.react +axios 跨域访问多个域名
安装插件:npm install --save http-proxy-middleware
安装好了之后咱们是开始配置啦:
1.首先暂时运行命令将配置暴露出来
npm run eject or yarn eject
在这里你可能会遇到一个报错:
那这个时候你可以将报错百度一下,或者跟着我继续操作
报错的原因呢是因为咱们在使用脚手架搭建 react 时,系统会自动给我们添加一个 .gitignore 文件,如果你没有提交到仓库过,你就需要先提交到仓库
完成这两步之后就可以继续 命名 npm run eject
,等配置文件暴露完成之后,你的 package.json
可能非常多配置,咱们不用管,在 src 下面建一个 setupProxy.js 在里面写上下面代码:
const { createProxyMiddleware } = require('http-proxy-middleware') module.exports = function (app) { app.use( createProxyMiddleware('/api', { target: 'http://iot-demo-web-server-dev.autel.com', changeOrigin: true, }) ) app.use( '/sys', createProxyMiddleware({ target: 'http://localhost:5001', changeOrigin: true, }) ); }
找到 scripts 路径 打开 strat.js
在第 117行左右 协商下面代码:
require('../src/setupProxy')(devServer) //注意路径是否正,是你刚才建的那个文件
如此 多个跨域便成功了,值得注意的就是, 需要在你请求的具体路径前面加上 api 或 sys 像这样
总结
到此这篇关于react axios 跨域访问一个或多个域名的文章就介绍到这了,更多相关react axios 跨域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- 当几个应用访问nginx服务器,而这几个应用与nginx不在同一个域名的时候,可能出现跨域问题
- 一个简单的问题(域名解析了访问不到的问题)
- C# 和Jsonp的一个小demo 用jQuery与JSONP轻松解决跨域访问的问题
- 多域名同时跨域访问一个站点 java
- 由一个“两次请求”引出的Web服务器跨域请求访问问题的解决方案
- 一个httpclient4实例跨域访问会报错,谁知道在什么情况下会出现这个问题?
- 解决ASP_NET AJAX在frame或iframe中跨域访问的问题
- asp.net Forms验证跨域页面不能访问的问题
- JSON进阶第三篇 apache多域名及JSON的跨域问题(JSONP)
- js 跨域访问问题解决方法
- 一个外网用户端口映射进入内网之后访问不是内网ip而是ipsec分布内网ip的问题
- 一个Tomcat及一个ip,绑定不同的域名,各个域名访问各自不同应用程序的配置方法
- 域名访问nginx,uwsgi,django产生的400问题
- OpenLayers访问WFS跨域问题(IIS)
- lnmp两个域名配置文件,访问时,两个域名访问同一套程序的问题
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
- 在MFC连接sql server出现不存在或拒绝访问的一个小问题
- 关于COOKIES跨域总结(通过一个问题)
- 用jQuery与JSONP来解决跨域访问的问题
- asp.net中解决json跨域访问问题