react axios 跨域访问一个或多个域名问题

所属分类: 网络编程 / AJAX相关 阅读数: 1158
收藏 0 赞 0 分享

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 像这样

更多精彩内容其他人还在看

AJAX 客户端响应速度提高分析

AJAX的出现极大的改变了Web应用客户端的操作模式,它使的用户可以在全心工作时不必频繁的忍受那令人厌恶的页面刷新。
收藏 0 赞 0 分享

揭开AJAX神秘的面纱(AJAX个人学习笔记)第1/5页

写这个学习笔记,只是记载一下自己的学习经过和体会,把一些学习重点记录下来,以备今后的巩固复习及应用,很多知识点没有详细介绍,所以并不完全适用于初学者,如果你是初学者,最好选择一本AJAX学习的书籍,然后与这篇学习笔记对照学习,效果会更好。
收藏 0 赞 0 分享

Ajax Control Toolkit 34个服务器端控件第1/2页

Ajax Control Toolkit 34个服务器端控件,想要学习ajax的朋友可以参考下。
收藏 0 赞 0 分享

Ajax 核心框架函数及例子

最近学习js,肯定会学到ajax中的东西,所以,看到比较好的ajax函数,免不得要贴出来,供大家参考。这个函数摘录自john resig的书中。
收藏 0 赞 0 分享

AJAX 进度条实现代码

AJAX 进度条实现代码,基于java后来,大家可以学习下。
收藏 0 赞 0 分享

一款经典的ajax登录页面 后台asp.net

众所周知,用服务器控件做页面的登录窗体时很简单的,但是页面的多次回传让我们感觉到头痛,一直刷新页面的感觉非常之不好,其实用ajax的局部刷新功能可以完全解决这个问题,制作出来的页面有很好的交互性,而且是局部刷新,节省网络资源。
收藏 0 赞 0 分享

ajax 调用后台方法大家可以讨论下

我曾使用过的三种调用后台的代码,需要的朋友可以参考下,如果发现更好的可以留言。
收藏 0 赞 0 分享

5款Ajax 文件上传控件

如果你的网站含有文件上传功能,那可以使用本文介绍的5款Ajax文件上传控件,提升用户体验。要知道,上传文件总是个痛苦的过程,要消除不太现实,但至少如果你为减少用户的痛苦努力了,那用户也会喜欢你的网站的。
收藏 0 赞 0 分享

AJAX集天气\IP\多国语言翻译MP3(可同步LRC歌词显示)\万年历查询通

AJAX集天气\IP\多国语言翻译MP3(可同步LRC歌词显示)\万年历查询通
收藏 0 赞 0 分享

AJAX 缓存问题的两种解决方法(IE)

ajax 清除缓存的两种方法
收藏 0 赞 0 分享
查看更多