反向代理解决跨域问题

为什么会产生跨域

js采用的是同源策略

同源策略是指浏览器的一项安全策略,浏览器只允许js代码请求和当前所在服务器域名,端口号协议相同的数据接口上的数据,这就是同源策略。

也就是说当协议,域名,端口任意一个不同时,都会产生跨域问题,所以如何解决跨域呢?

1、在vue的根目录新建一个vue.config.js ,必须是这个文件名,在输入下列代码,记得链接要换,还有axios的默认访问路径改成 api。

// 解决跨域,vue自动生成代理服务器【反向代理】
module.exports = {
    devServer: {
        //设置代理
        proxy: {
            /api: {
                target: http://localhost:3000, //要跳转的位置
                pathRewrite: { //重写,如果有 api 就将api重写为空
                    ^/api: 
                }
            }
        }
    }
}

文字描述 :vue中的proxy反向代理 利用的是服务器之间解决跨域

当你请求目标路径 /api/:url的时候 会被proxy 拦截 因为你在 devServer配置的 就是 /api开头的 路径 ,proxy对你 的 路径 替换成你配置的真实 路径 http://localhost:3000/api/:url

最后重写路径 把 /api 替换成

等于你还是请求的 http://localhost:3000/:url ,此时就可以解决跨域了

经验分享 程序员 微信小程序 职场和发展