因为会存在一个项目后端多个服务器。所以需要配置多个代理
Tip
1.vue.config.js正常配置。但是匹配名字长的放在上面
2.request.js文件最后不要配置baseURL为其他的就配成‘/’。
3.接口调用的时候url记得前面拼上需要匹配的代理字段

在vue.config.js文件里面配置

devServer: {
		proxy: {  //配置跨域
			"/recognition": {
				target: '你的真实url',  //后台接口
				changeOrigin: true, // 默认false,是否需要改变原始主机头为目标URL,是否跨域
				ws: true,		//websocket支持
			},
			"/api": {
				target: '你的真实url',  //后台接口
				changeOrigin: true, // 默认false,是否需要改变原始主机头为目标URL,是否跨域
				secure: false, // 如果是https接口,需要配置这个参数,
				pathRewrite: {
					"/api": "" // 既能有正确的标识,又能在请求接口的时候去掉
				},
				//方便在浏览器查看真实的地址。因为配置代理后查看不到访问的真实地址
				onProxyRes(proxyRes, req, res) {
					const realUrl = "你的真实url'" + req.url || ''; // 真实请求网址
					proxyRes.headers['A-Real-Url'] = realUrl; // 添加响应标头(A-Real-Url为自定义命名),在浏览器中显示
				},
			},
		},
		//https:true
	},
	

在request.js文件里面配置

axios.defaults.baseURL = "/" //这个不需要注释。代理的时候会根据这个来删掉
//axios.defaults.baseURL = '你的真实url'//如果有这段代码需注释。因为会跟proxy那块配置冲突
axios.defaults.withCredentials = true;//允许axios请求携带cookie等凭证

调用api

//使用第一个代理
 return request({
        url: "recognition/card/cards_by_strategy/",
        method: "get",
      })
 //使用第二个代理
 return request({
        url: "api/FrontService/GetUserInfo",
        method: "get",
      })

在proxy中配置了onProxyRes需重新运行一下项目。这样会看response header中查看到自己新增的属性

GitHub 加速计划 / vu / vue
80
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 6 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐