我是靠谱客的博主 纯真蓝天,最近开发中收集的这篇文章主要介绍已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错problemreasonsolution,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错
problem
已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错
控制台仍然出现cors禁止报错,接口调不通
reason
配置proxy代理解决跨域问题的原理是:
- 前端工程本地环境会启动一个 express 或 koa 的web服务 例如 http://localhost:3000
- 后端接口 可能是ip 有可能是dev的域名 例如 http://dev.com/api
前端页面通过axios调用后端接口,
- 如果直接从浏览器发起请求,相当于 浏览器(3000端口) 向 http://dev.com/api 发起请求,属于跨域,会被cors阻止
- 如果是浏览器->express/koa->后端,则属于2个web server后端之间发起请求,浏览器-> http://localhost:3000 -> http://dev.com/api 不属于跨域,不会出现cors阻止问题
proxy实现跨域常见配置如下
module.exports={
devServer: {
proxy: {
"/api": {
target: "http://dev.com", // 接口的域名
changeOrigin: true
}
},
},
}
导致上面问题的原因,经过排查是: axios写死了http的prefix为 http://dev.com/api, 直观从控制台看到浏览器直接向后端发请求 也就是 http://dev.com/api
solution
axios的http请求的prefix不要写死,改为 ‘/’ 即可, 此时控制台可以看到浏览器请求目标是 http://localhost:3000
最后
以上就是纯真蓝天为你收集整理的已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错problemreasonsolution的全部内容,希望文章能够帮你解决已配置vue.config.js中的proxy代理,前端本地环境仍然请求后端出现跨域报错problemreasonsolution所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复