前端跨域解决方案:vue-cli代理转发
浏览器是禁止跨域的,但是服务端不禁止,在本地运行npm run dev等命令时实际上是用node运行了一个服务器,因此proxyTable实际上是将请求发给自己的服务器,再由服务器转发给后台服务器,即代理转发。
- 前端和这个服务器是同源的,使用同一端口
1.修改webpack服务器的配置(vue.config.js)
devServer: {
proxy: {
// 请求相对路径以/api开头的, 才会走这里的配置 也可以写为'/'
'/api': {
'ws':false,
// 后端服务器地址
target: 'http://xxx.com',
// 改变请求来源
changeOrigin: true,
pathRewrite: {
// 因为真实路径中没有/api, 所以要去掉这段才是正确地址
//(将冒号前面的字符替换为后面的字符 也可以直接写为'^/':'/')
'^/api': ''
}
}
}
}
2.在请求中加上/api
app.get("/api/myAddr", (req, res) => {
// 执行语句
});
axios({
url: '/api/a/b/myPage.html'
})