1.什么是跨域
跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。
举例
当前页面url 被请求页面url 是否跨域 原因
http://www.test.com/ http://www.test.com/index.html 否 同源(协议、域名、端口号相同)
http://www.test.com/ https://www.test.com/index.html 跨域 协议不同(http/https)
http://www.test.com/ http://www.baidu.com/ 跨域 主域名不同(test/baidu)
http://www.test.com/ http://blog.test.com/ 跨域 子域名不同(www/blog)
http://www.test.com:8080/ http://www.test.com:7001/ 跨域 端口号不同(8080/7001)
2.Vue跨域解决方法
首先,使用相对路径进行请求:
其次,根据实际情况,配置axios,比如下面每个请求都会带有api/v1:
配置wepack:
"/api": {
target: "http://127.0.0.1:8888",
changeOrigin: true,
secure: false,
pathRewrite: {
"^/api": ""
}
}
至此,Vue跨域请求的配置就结束了。
问题解决([HPM] Error occurred while trying to proxy request)
代理写错,比如下面,是需要写上http:// 。如果有些缺少了http就可以写上这个