计议react axios 跨域拜访一个或多个域名问题
【相关文章引荐:ajax视频教程】
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
在这里你大概会碰到一个报错:
那这个时候你可以将报错baidu一下,或者跟着我连续操纵
报错的缘由呢是由于咱们在使用足手架搭建 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 像这样
相关学习引荐:js视频教程
以上就是计议react axios 跨域拜访一个或多个域名问题的具体内容,更多请关注百分百源码网其它相关文章!