大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
前言
跨域错误信息
Access to XMLHttpRequest at ‘http://192.168.2.92:3000/api/b/home’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: It does not have HTTP ok status.
一、跨域是什么?
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
举例说明:
#协议跨域
http://a.baidu.com 访问 https://a.baidu.com;
#端口跨域
http://a.baidu.com:8080 访问 http://a.baidu.com:80;
#域名跨域
http://a.baidu.com 访问 http://b.baidu.com;
二、解决跨域的办法
1.这里以使用vue脚手架生成的标准项目为准。一般在项目config目录下面有个index文件
module.exports = {
publicPath: './',
lintOnSave: true,
configureWebpack: {
//关闭 webpack 的性能提示
performance: {
hints:false
}
},
devServer: {
proxy: {
'/api': {
target: 'http://192.168.2.90:3000',//后端接口地址
changeOrigin: true,//是否允许跨越
pathRewrite: {
'^/api': '/api'//重写,
}
}
}
}
}
此方法只能在开发环境中使用。
后端请求地址是http://192.168.92.2:3000,所有api的接口url都以/api开头。
所以首先需要匹配所有以/api开头的.然后修改target的地址为http://192.168.2.92:9090。
最后修改pathRewrite地址:将前缀’^api’转为’/api’。
如果本身的接口地址就有’/api’这种通用前缀,就可以把pathRewrite 删掉。
2.配置一下axios.defaults.baseURL = ‘/api’这样就可以保证动态的匹配生产和开发环境的定义前缀,代码如下:
// mock服务器
axios.defaults.baseURL ='/api';
3.重新启动项目,发现解决了跨域问题
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186965.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...