Webpack Proxy工作原理(本地跨域)
關(guān)于proxy詳細(xì)的參數(shù)配置 http-proxy-middleware
dev: {
// Paths
assetsSubDirectory: 'static', //項(xiàng)目的公共路徑
assetsPublicPath: '/', //開發(fā)用的服務(wù)器配置
proxyTable: {
'/api': {
target: 'http://localhost:3000',//這里是目標(biāo)服務(wù)器地址
changeOrigin: true,//是否改變源地址
pathRewrite: { //路徑重寫
'^/api': ''
},
}
}
}
‘/api’ : 當(dāng)你發(fā)起請求的時(shí)候需要拼接在請求中,告訴服務(wù)器你要走代理的服務(wù)。
例如:vue項(xiàng)目localhost:8080。后端是localhost:3000饺蔑。
那我發(fā)起請求就需要localhost:8080/api/list,如果沒有/api會本地的服務(wù)(localhost:8080)中尋找changeOrigin: 類型為Boolean值鸠信,這個相當(dāng)于欺騙服務(wù)器歹河,為true的話,后端地址和端口為本服務(wù)的舆绎,為false是你是實(shí)際的地址和端口號鲤脏,
例如:前端項(xiàng)目localhost:8080,后端localhost:3000亿蒸,changeOrigin為true, 后端接受的到將是localhost:3000凑兰,changeOrigin為false,后端接受的到將是localhost:8080.-
pathRewrite:重寫取決于接口
- 路徑重寫
例如:localhost:3000/app/list 這個時(shí)候我設(shè)置了‘/api' 那就必須重寫边锁,不然的話會吧api這個拼接起來提交給后端姑食。localhost:3000/api/app/list. 所以報(bào)404了。 - 路徑不要重寫
例如:localhost:3000/app/list茅坛。這個時(shí)候我設(shè)置了‘/app' 那就不用重寫了音半,localhost:3000/app/list。
- 路徑重寫