React网络请求跨域代理设置
跨域解决方案可以分为开发模式和生产模式

git查看脚手架工具,如下所示

然后进入docusaurus文档,文档里有关于跨域的相关配置

如下所示进行配置
(1)第一种方案

配置后重新测试

(2)第二种跨域方案
先利用express框架搭建简单后台服务

接下来创建路由文件

接下来启动后台服务,做下测试。此时node服务器和React所在的webpack服务器不在同一个端口号,所以即使在本地开发,仍存在跨域


接下来查看个github文档的第二种方案,手动配置(结合Express使用)
详见https://juejin.im/post/5bd13c5ce51d457a203cebf4和https://www.jianshu.com/p/a248b146c55a




至此便实现了跨域,这种在开发里应用较多
(3)案例实践:
之前的之所以可以请求其他域名下的网络数据,是因为我们在服务端设置了相关配置,如下所示

如果将其注释掉,再次测试,如下所示


此时便无法跨域操作,接下来介绍下React如何实现跨域代理
(1)分析
React项目脚手架启动时,便会在服务器下启动,主要运行在webpack服务器下。此时可以利用前端服务器去解决跨域问题
注意:
跨域只是前端遇到的问题,即浏览器的相关政策导致的。服务器与服务器之间并不存在跨域。
注意:该配置只是用于开发阶段,真正上线后是不能用的
(2)步骤
1、执行npm run eject抛出配置文件

本地有git的可能会报错,将git初始化仓库提交一下即可。喷出配置文件后,项目结构如下

2、修改配置文件config/webpack.config.dev.js
文件内部添加服务器配置,因为新版没有了该配置文件。所以我们换种方法 ,配置package.json文件
(3)package.json文件
在package.json中添加proxy字段,如下所示

接口调用:

此时的/api/login便会被替换为http://localhost:3888/login
proxy中的部分参数说明:
1、'/test/*' 以及 target: 'http://localhost'
- 从名字就能看出,这个实际上是将匹配
'/test/*'这种格式的API的域名重定向为'http://localhost' - 结合上面的 “调用接口” 可以看出,
url: '/test/testFetch/Login.php'这句,实际上会自动补充前缀,也就是说,url: '/test/testFetch/Login.php' 等价于 url: 'http://10.0.0.9:3000/test/testFetch/Login.php'- 但是,我们使用了http-proxy进行重定向,这样的话,
url: '/test/testFetch/Login.php' 等价于 url: 'http://localhost/test/testFetch/Login.php'
- 但是,我们使用了http-proxy进行重定向,这样的话,
2、changeOrigin
- true/false, Default: false - changes the origin of the host header to the target URL
- 本地会虚拟一个服务端接收你的请求并代你发送该请求——这个是别人的说法
- 我试了一下,就算这个参数设置成
false也有部分情况是可以的,建议将其设置成true
3、secure
- true/false, if you want to verify the SSL Certs
4、pathRewrite
- 例子:
pathRewrite: {'^/api': ''} - Object-keys will be used as RegExp to match paths
小结:Vue也是同理

.
React网络请求跨域代理设置的更多相关文章
- [转] js网络请求跨域问题汇总(携带cookie)
前端程序使用extjs写,在本地测试,发送请求到服务器时,发现存在跨域的问题,cookie也没有set成功,于是乎在这里整理一下解决过程 由于篇幅较长,不想看解决过程的可以翻到最后看总结1.跨域允许2 ...
- Nginx 跨域代理
安装环境: win10 nginx-1.17.2 安装: 在写前端调用后台接口时,报了跨域的错误. 调试地址:http://localhost:5500/demo/encAjax.html 接口地址: ...
- axios,vue-echarts, async, vue 图表数据处理; axios 跨域代理; 异步同步请求接口;生命周期函数
1.vue-echarts 安装和组件引用 插件官网 https://github.com/ecomfe/vue-echarts 安装 npm install eacharts vue-echarts ...
- ASP.NET WebAPI2复杂请求跨域设置
ASP.Net Core的跨域设置比较简单 官方都整合了 具体的参见微软官方文档: https://docs.microsoft.com/zh-cn/aspnet/core/security/cor ...
- vue-cli 前端开发,后台接口跨域代理调试问题
使用 webpack的方式开发的时候,前台开发过程中需要调用很多后台的数据接口,但是通常前后台分离的开发方式,后台的接口数据很可能是不方便或者是不能在前端同学的电脑上运行的,也就出现了所谓的跨域问题. ...
- 在ABP的Web层中实现复杂请求跨域访问
在最近的项目中,后端使用ABP,前端采用React,前后端完全分离.其中大部分接口都通过WebApi层调用,项目中未使用Session.但最后在添加一个网站的验证码验证留言功能时,使用了Session ...
- nodejs之mock与跨域代理的三两事
emmm...好久没写博客了,都忘了该怎么开始. 那就先说下mockjs.因为一些原因,导致后台接口没有数据,那么我们就开始自己造数据,使用的是比较流行mockjs,根据文档就能简单的配置,然后开始愉 ...
- 前后端分离框架前端react,后端springboot跨域问题分析
前后端分离框架前端react,后端springboot跨域问题分析 为啥跨域了 前端react的设置 springboot后端设置 为啥跨域了 由于前后端不在一个端口上,也是属于跨域问题的一种,所以必 ...
- axios FastMock 跨域 代理
发送请求: 实现:发送请求,获取数据. 原本想自己写服务,后来无意间找到FastMock这个东东,于是就有了下文... 首先我安装了axios,在fastmock注册好了并创建了一个接口,怎么搞自行百 ...
随机推荐
- linux系统下gdb的简单调试
当我们写完程序后,我们会运行程序,在这个过程中,可能程序会出现错误. 我们可以利用gdb调试去看我们运行的程序,并且我们新手通过gdb调试能更好地去读懂 别人的程序.让我们更好的学习. 我们看下面这条 ...
- 实验15: STP
实验12: STP Ø 实验目的通过本实验,读者可以掌握如下技能:(1) 理解STP 的工作原理(2) 掌握STP 树的控制(3) 利用PVST 进行负载平衡 Ø 实验拓扑 SW1 和S ...
- 命令行开启WIFI
netsh wlan set hostednetwork allow //netsh wlan set hostednetwork mode=disallow netsh wlan set hos ...
- 从Libra看区块链的机遇
一番码客 : 挖掘你关心的亮点.http://www.efonmark.com 关于未来的思考 记得去年扎克伯格搞Libra的时候,引起了世界的关注.但随着美国国会听证会的阻力,渐渐很少听见Libra ...
- jmeter新手学习笔记(一)
使用jmeter做接口测试--设置线程组 1.创建线程组 2.设置线程数配置信息 线程组:常用于模拟并发用户访问,例如需要100个用户访问该接口,线程数则设置为100 Ramp-Up Period:决 ...
- HDU_1175_A*
http://acm.split.hdu.edu.cn/showproblem.php?pid=1043 刚开始一脸蒙逼,看了题解之后,参考了A*算法. 参考:http://www.cnblogs.c ...
- How to do if sqlserver table identity column exceed limited ?
script: select a.TABLE_NAME,a.COLUMN_NAME,a.DATA_TYPE, (CASE a.DATA_TYPE when 'int' then 'limited be ...
- Jdk14 都要出了,Jdk9 的新特性还不了解一下?
Java 9 中最大的亮点是 Java 平台模块化的引入,以及模块化 JDK.但是 Java 9 还有很多其他新功能,这篇文字会将重点介绍开发人员特别感兴趣的几种功能. 这篇文章也是 Java 新特性 ...
- ORB-SLAM2 论文&代码学习 —— 概览
转载请注明出处,谢谢 原创作者:MingruiYU 原创链接:https://www.cnblogs.com/MingruiYu/p/12347171.html *** 本文要点: ORB-SLAM2 ...
- 解决mysql登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)问题
问题描述: 在ubuntu14.04上安装完MYSQL后,MYSQL默认给分配了一个默认密码,但当自己在终端上使用默认密码登录的时候,总会提示一个授权失败的错误. 报错信息:Access denied ...