Webpack Proxy工作原理(本地跨域)
关于proxy详细的参数配置 http-proxy-middleware
dev: {
// Paths
assetsSubDirectory: 'static', //项目的公共路径
assetsPublicPath: '/', //开发用的服务器配置
proxyTable: {
'/api': {
target: 'http://localhost:3000',//这里是目标服务器地址
changeOrigin: true,//是否改变源地址
pathRewrite: { //路径重写
'^/api': ''
},
}
}
}
‘/api’ : 当你发起请求的时候需要拼接在请求中,告诉服务器你要走代理的服务。
例如:vue项目localhost:8080。后端是localhost:3000。
那我发起请求就需要localhost:8080/api/list,如果没有/api会本地的服务(localhost:8080)中寻找changeOrigin: 类型为Boolean值,这个相当于欺骗服务器,为true的话,后端地址和端口为本服务的,为false是你是实际的地址和端口号,
例如:前端项目localhost:8080,后端localhost:3000,changeOrigin为true, 后端接受的到将是localhost:3000,changeOrigin为false,后端接受的到将是localhost:8080.-
pathRewrite:重写取决于接口
- 路径重写
例如:localhost:3000/app/list 这个时候我设置了‘/api' 那就必须重写,不然的话会吧api这个拼接起来提交给后端。localhost:3000/api/app/list. 所以报404了。 - 路径不要重写
例如:localhost:3000/app/list。这个时候我设置了‘/app' 那就不用重写了,localhost:3000/app/list。
- 路径重写