遇到的问题就是前后端数据的传输,前端跨域,可以在后台配置跨域也可以在前端配置跨域,首先要知道什么是跨域,跨域是浏览器厂商指定的同源策略导致的,必须要是同样的协议同样的域名同样的端口号发送请求才可,否则浏览器会将请求拦截。
前端如何解决vue/cli里有一个通过代理的方式来解决跨域请求
在vue.config.js中进行如下跨域代理设置
devServer: {
proxy: {
"/api": {
target: "http://qwerasd.vaiwan.com/",
changeOrigin:true,
pathRewrite: {
/* 重写路径,当我们在浏览器中看到请求的地址为:/api/…… 时
实际上访问的地址是:http://"你请求的后台地址.com/……",因为重写了 /api
*/
"^/api": "",
},
},
},
},
publicPath: process.env.NODE_ENV === 'production'
? '/wlzw/'
: '/'
在请求中这样发送
this.$http.post.get('/api/list')
然后发送请求带上/api,最终发出去的请求格式会想这样
http://127.0.0.1:8000/api/list
当发送请求时会进行路由规则匹配发现没有这个/api这个路径,就会执行devserve
中的proxy
下的target
下设置的代理路径,之后会进行pathRewrite
执行路径的重写操作将请求中的/api
替换为空,所以最后发送的请求就是devserve
下的target的代理路径再拼接上前端/api后的内容
// 这就是前端向后端发送的请求
http://qwerasd.vaiwan.com/list
版权声明:本文为pymlist原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。