反向代理解决跨域问题
为什么会产生跨域
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 ,此时就可以解决跨域了
