axios nginx 生产环境_vue生产环境nginx、开发环境配置代理转发跨域

本文介绍了如何在Vue的生产环境和开发环境中配置Nginx进行代理转发,以解决跨域问题。对于生产环境,提供了两种axios请求URL配置方式,并详细说明了`proxy_pass`的使用注意事项。开发环境中,通过vue.config.js的proxy配置实现跨域。
摘要由CSDN通过智能技术生成

后端提供的请求接口完整地址示例:https://www.baidu.com/company/list

一、生产环境

前端配置:

一:axios请求url:  /api/company/list

推荐此方法

方法1:

location ^~ /api/ {

proxy_pass https://www.baidu.com/;  # 转发地址

}

注意:proxy_pass https://www.baidu.com/;    后面要加 /  表示绝对路径

方法2:

location ^~ /api/ {

rewrite  ^/api/(.*)$  /$1  break;  # 重写路径将  api 替换为空

proxy_pass https://www.baidu.com;

}

注意:proxy_pass https://www.baidu.com;   后面没有 /

二:axios请求url:  /company/list

适合后端提供的接口地址都是以统一前缀开头的  比如  https://www.baidu.com/company/xxx,假如不是以统一前缀开头的话,需要配置很多匹配路径

location ^~ /company/ {

proxy_pass https://www.baidu.com;  # 转发地址

}

注意:proxy_pass https://www.baidu.com;   后面没有 /

解释:在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径(/api)代理走;如果没有/,则会把匹配的路径也给代理走。

二、开发环境

vue.config.js中

proxy: {

//配置跨域

'/api': {

target: "https://www.baidu.com",

changOrigin: true,

pathRewrite: {

'/api': ''

}

}

}

注意:

1. axios请求的完整URL:/api/company/list

2. axios的baseURL为空

3. 浏览器network请求地址Request URL一般类似为:http://localhost:8080/api/company/list

示例:

return request({

url: '/api/GetProvinceList',

method: 'get',

params: params

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值