Vue 项目如何配置代理解决跨域

是什么是跨域?

由于浏览器的同源策略(SOP: same origin policy)的存在,只有协议、域名和端口三者都相同的情况下,相互之间才可以进行交互,任何一个不同,哪怕是同一域名下不同端口,也无法正常交互,这便是跨域;

解决跨域的方法有哪些?

常见的解决跨域的方案有JSONP(jsonp的原理是动态插入script标签),node.js中间件解决跨域,nginx代理跨域,WebSocket协议跨域等

(详情参考:https://segmentfault.com/a/1190000011145364?utm_source=tag-newest

 

在Vue 3.0项目中,可以通过如下配置解决跨域:

在根目录下新建一个  vue.config.js 文件  (ps:  2.0版本下有该文件,直接修改,3.0版本需要新建该文件)

module.exports = {
    //相当于webpack-dev-server,  对本地服务器进行配置
    devSever : {
         proxy:  {
            "/api" : {
                 target: " http://localhost:3000 ",   //需要跨域的目标url ,我这里是自己本地起的一个服务端口
                 changeOrigin: true,           // 将基于名称的虚拟托管网站的选项,如果不配置,请求会报404
                 ws:  true,
                 pathRewrite: {
                     " ^/api " :  ""          //若请求的路径在目标url下但不在/api 下,则将其转换成空
                 }     
            }
        }
    }      
}

  

posted @ 2020-05-14 17:17  飞翔的蜗牛~  阅读(6684)  评论(0编辑  收藏  举报
Live2D