react脚手架配置代理解决跨域问题
一、问题描述:
控制台报错,出现跨域问题
二、解决方案
配置代理:
第一种配置方式:
在package.json中追加如下配置
"proxy":"http://localhost:5000"
说明:
- 优点:配置简单,前端请求资源时可以不加任何前缀。
- 缺点:不能配置多个代理。
- 工作方式:上述方式配置代理,当请求了3000不存在的资源时,那么该请求会转发给5000 (优先匹配前端资源)
第二种配置方式:
第一步:创建代理配置文件
在src下创建配置文件:src/setupProxy.js
编写setupProxy.js配置具体代理规则:
const proxy = require('http-proxy-middleware')module.exports = function(app) {app.use(proxy('/api1', { //api1是需要转发的请求(所有带有/api1前缀的请求都会转发给5000)target: 'http://localhost:5000', //配置转发目标地址(能返回数据的服务器地址)changeOrigin: true, //控制服务器接收到的请求头中host字段的值/*changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:3000changeOrigin默认值为false,但我们一般将changeOrigin值设为true*/pathRewrite: {'^/api1': ''} //去除请求前缀,保证交给后台服务器的是正常请求地址(必须配置)}),proxy('/api2', { target: 'http://localhost:5001',changeOrigin: true,pathRewrite: {'^/api2': ''}})) }
说明:
- 优点:可以配置多个代理,可以灵活的控制请求是否走代理。
- 缺点:配置繁琐,前端请求资源时必须加前缀。
changeOrigin:控制服务器收到的请求头中Host字段的值
pathRewrite:重写请求路径
react脚手架配置代理解决跨域问题相关推荐
- 【react】使用代理解决跨域问题
[react]使用代理解决跨域问题 参考文章: (1)[react]使用代理解决跨域问题 (2)https://www.cnblogs.com/guanpingping/p/10344197.html ...
- No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题
前言 在进行web开发进行数据请求的时候常常会遇到跨域问题导致无法请求数据. 如果采用如下方法向http://localhost:4000服务器发送getStudents进行接口数据请求,在后端没有处 ...
- vue cli配置代理解决跨域问题
内容 跨域问题 解决跨域问题 vue cli配置代理 跨域问题 是由于违背了同源策略,同源策略规定了协议名.主机名.端口号必须一致 我们目前所处的位置是http localhost 8080,我们想向 ...
- nginx 代理解决跨域问题
前言 可能在某些时候我们的前端项目需要访问一些外部的接口,比如Apollo等,而直接使用axios发送请求的话,会报跨域的错误,具体什么是跨域这里就不啰嗦了,如下图. 这个接口地址当然是正确的,可以放 ...
- reactjs脚手架配置http-proxy-middleware代理解决跨域问题
reactjs脚手架配置http-proxy-middleware代理解决跨域问题
- 通过nginx反向代理解决跨域
先写一个发送跨域请求的页面index.html <html> <head><title></title> </head> <body& ...
- Nginx反向代理解决跨域问题(个人学习总结)
一.理解Nginx Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并 ...
- Nginx 方向代理解决跨域问题-2
概述 在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现象,如下图所示 什么是跨域问题? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览 ...
- nginx正向代理解决跨域问题
原理 为了更好的理解nginx解决跨域的原理,首先来了解一下跨域是怎么样产生的. 因为浏览器的同源政策,就会产生跨域.比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者 ...
最新文章
- mysql oneproxy_利用oneproxy实现mysql读写分离搭建笔记
- Docker_基础知识
- SPU解析优化:模块设计与实现,SKU优化
- Linux - 查看、修改、更新系统时间(自动同步网络时间)
- 需求调研 现有系统梳理_对速度的需求,访问现有数据的速度提高了1000倍
- TotoiseSVN 使用参考文章
- mac基础操作:在Mac上怎么使用夜览
- 禁止电商平台二选一、遛狗必栓绳!5月起有这些新规定
- UVa11988-破损的键盘 Broken Keyboard
- 40天后Java 11将推出的功能有哪些,它们与Java 9和10的不同之处是什么?
- mac 卸载mysql_Mac 电脑卸载mysql数据库
- Mac上最好的白噪音软件:Noizio for Mac
- Java方法 根据经纬度计算距离
- HTPPS的域名部署项目请求头xx_xx问题解决
- 收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需...
- Excel: vlookup函数简介、使用注意事项及查找结果显示#N/A的解决方法
- IDEA插件系列(20):Grep Console插件——显示多颜色调试日志
- 散粉在哪个步骤用_定妆粉是在哪个步骤用
- 通过ADB命令行卸载或删除你的Android设备中的应用
- mysql 实现日期格式化(date_format)
热门文章
- 学成在线--14.使用RabbitMQ完成页面发布
- oracle索引分类与区分,深入理解Oracle表(6):堆组织表(HOT)和索引组织表(IOT)的区别...
- Django REST framework 序列化
- Doc2Bow简介与实践Demo
- 勾股定理python思路_趣叮咚编程数学揭秘:为什么勾股定理a+b=c?
- 微信红包问题:找出某个出现次数超过红包总数一半的红包的金额(面试题)
- honeywell扫码枪取消回车_霍尼韦尔条码扫描器常见问题与解决方法
- LeetCode17——Letter Combinations of a Phone Number(手机几个按键对应的字母(符号)组合)
- 富士 FinePix F401
- vue 相关技术文章集锦