一、技术概述
现在项目都是前后端分离开发,在发送请求时有可能会出现跨域问题。跨域问题的产生原因很多,可能是域名不同,或者是域名相同但是接口不同等。最好的解决方法就是后端更改header,但是有的时候这样的方法还是会出现跨域问题,这时候就可以通过vue-cli中的配置来解决跨域问题。
二、技术详述
使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建)
打开config/index.js,在proxyTable中添写如下代码:
'/api': {
target:'http://129.204.247.165/',
changeOrigin:true,
pathRewrite:{
'^/api': ''
}
}
},
main.js里面加入:
import axios from 'axios'
Vue.prototype.$axios = axios
使用axios:
method: 'post',
url: '/api/posts/gethotbystatus',
data:qs.stringify({
day:20,
status:0
}),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
}).then(function (res) {}
三、可能遇到的问题和解决方式
主要的问题就是不用vue-cli脚手架只单单导入vue.js包不能解决跨域.所以解决的过程就是安装vue-cli脚手架
四、总结
以后如果后端修改了header还不能解决跨域问题,用vue来解决就是一个很好的方法