问题1:
- 在开发时由于前后端服务器不一致,涉及到了跨域
解决方式: - 碰到这种事情第一反应是使用chrome上的解决跨域的扩展程序,,,但是仍旧未能获取到数据,,,,然后我以为是扩展程序出错了,就让服务器端将我的IP地址设置为允许获取数据
问题2:
- 仍旧未曾获取到数据(但是不会报跨域错误),通过跟服务器端交流得知,需要在请求头携带cookie才能获取到数据,,,于是我便设置了
axios.defaults.withCredentials= true
,但是设置了之后,控制台又开始报跨域错误
解决方式 - 使用proxy
//vue.config.js
module.exports = {
publicPath: "./",//配置打包之后的相对路径
devServer: {
proxy: {
"/api": {
target: "http://1.1.1.1:0000",//这是你服务器端的baseUrl
ws: true,
changeOrigin: true,
pathRewrite: {
"^/api": "/"
}
}
}
}
- 然后使用
/api/
代替你原本的服务器端的baseUrl
问题3:
- 通过这种方式可以获取到数据了,但是我发现有些接口能够获取到数据,有些接口报404错误(这个坑超级深)
解决方式: - get请求的数据传输字符串连接时这样
/api/url/?name=aaa&value=111
写,,,,我之前这样/api/url?name=aaa&value=111
写的,,,是的,,没错,就是少写了一个/
总结:
- 其实如果请求头不需要携带cookie的话,可以直接使用chrome应用商店的扩展程序CORS,就不用进行其他的配置了