最近在项目中使用了Vue CLI 3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程。
新建配置文件
(vue-cli3.x 官网的配置文档 https://cli.vuejs.org/zh/config/#devserver-proxy)
在项目的根目录下新建 vue.config.js
文件,自Vue CLI 3开始,项目中所有的配置信息都写在这个文件中(2在config目录中配置)。如下图:
配置反向代理
在vue.config.js 文件里,添加如下代码:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://m.baidu.com',//目标地址
ws: true, //// 是否启用websockets
changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
pathRewrite: {'^/api': '/'} //这里重写路径
} }
}
}
在数据请求的时候:
假设原来的接口为:
http://m.baidu.com/sf/vsearch/image/browse/wiseresultjson?ie=utf-8&word=%E6%93%8E%E5%A4%A9%E6%9F%B1&rn=10&browsetype=0&pn=0&browse_style=1
配置完代理以后,我们在项目中请求接口的时候,这样写:
/api/sf/vsearch/image/browse/wiseresultjson?ie=utf-8&word=%E6%93%8E%E5%A4%A9%E6%9F%B1&rn=10&browsetype=0&pn=0&browse_style=1
看一下完整点的代码吧。