React中使用Axios及解决跨域问题

在学习React时重新过了一遍axios,其中涉及到promise方法

引入axios

import axios from 'axios';

axios请求正常写,post 和 put 要在参数中额外加请求体对象属性

		axios({
			method:'GET',
			url:'http://localhost:3000/api1/students'
		}).then(
			response => {console.log('成功',response.data);
			},
			error => {console.log('失败',error);
			}
		)

(api为代理相关)

解决跨域 在axios方法中url配置为本地url域名

单个端口的跨域:在package.json中 单独设置 "proxy": 目标端口url 

多个端口的跨域:

1)在src中新建一个setupProxy.js文件

2)在setupProxy.js文件中配置多个端口的代理

const {createProxyMiddleware} = require('http-proxy-middleware')

module.exports = function(app){
	app.use(
		createProxyMiddleware('/api1',{ //遇见/api1前缀的请求,就会触发该代理配置
			target:'http://localhost:5000', //请求转发给谁
			changeOrigin:true,//控制服务器收到的请求头中Host的值
			pathRewrite:{'^/api1':''} //重写请求路径(必须)
		}),
		createProxyMiddleware('/api2',{
			target:'http://localhost:5001', 
			changeOrigin:true,
			pathRewrite:{'^/api2':''}
		}),
	)
}

其中涉及版本问题 低版本中的 createProxyMiddleware 用 Proxy 代替

在axios方法中添加前缀(图中api/),即可将请求发给代理,并由代理转发给目标端口,解决跨域

            changeOrigin:true,//控制服务器收到的请求头中Host的值

            pathRewrite:{'^/api1':''} //重写请求路径(必须)

这两个属性:

前者将欺骗服务端收到的路径

后者将欺骗浏览器收到的域名

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值