国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

webpack配置proxyTable時(shí)pathRewrite無(wú)效的解決方法

2024-05-06 16:47:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本人webpack版本3.6,webpack-dev-server版本2.9.1,本人按照網(wǎng)上寫(xiě)的版本折騰兩天都沒(méi)通,無(wú)意間自己試通了,猜測(cè)網(wǎng)上大部分都是照本宣科,沒(méi)有自己實(shí)踐

webpack配置接口地址代理

在項(xiàng)目開(kāi)發(fā)中,接口聯(lián)調(diào)的時(shí)候一般都是同域名下,且不存在跨域的情況下進(jìn)行接口聯(lián)調(diào),但是當(dāng)我們?cè)诒镜貑?dòng)服務(wù)器后,比如本地開(kāi)發(fā)服務(wù)下是 http://localhost:8080 這樣的訪問(wèn)鏈接,但是我們的接口地址是  http://www.xxx.com/save/post 這樣的,我們這樣直接使用就會(huì)存在跨域的請(qǐng)求,導(dǎo)致接口請(qǐng)求不成功。

配置:

我們打開(kāi)下面路徑的文件

config/index.js

在其中的 dev 對(duì)象里面找到: proxyTable: {}

這里就是配置代理的地方,我們進(jìn)行如下設(shè)置:

module.exports = { // ... dev: {  // 代理配置表,在這里可以配置特定的請(qǐng)求代理到對(duì)應(yīng)的API接口  proxyTable: {   '/api': {    target: 'http://www.xxx.com', // 你接口的域名    secure: false,   // 如果是https接口,需要配置這個(gè)參數(shù)為true    changeOrigin: true,   // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置為true     }  }, }}

接口地址原本是 /save/post ,但是為了匹配代理地址,在前面加一個(gè)  /api , 因此接口地址需要寫(xiě)成這樣的即可生效  /api/save/post 。

即:前端本地啟動(dòng)接口為:http://localhost:8080/api/save/post,轉(zhuǎn)發(fā)的代理接口為:http://www.xxx.com/api/save/post,其中的/api為匹配項(xiàng)。

/api 是本地路徑和后端接口路徑的匹配前綴,若后端接口給了/api這個(gè)前綴,可用上面的寫(xiě)法。

若后端前綴不統(tǒng)一,則可繼續(xù)添加,寫(xiě)法如下:

module.exports = { // ... dev: {  // 代理配置表,在這里可以配置特定的請(qǐng)求代理到對(duì)應(yīng)的API接口  proxyTable: {   '/api': {    target: 'http://www.xxx.com', // 你接口的域名    secure: false,   // 如果是https接口,需要配置這個(gè)參數(shù)為true    changeOrigin: true,   // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置為true     },   '/api': {    target: 'http://www.xxx.com', // 你接口的域名    secure: false,   // 如果是https接口,需要配置這個(gè)參數(shù)為true    changeOrigin: true,   // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置為true     }  }, }}

那么還有一種情況,是后端的接口沒(méi)有我們想要的匹配項(xiàng)(前綴)'/api',是直接的http://www.xxx.com/save/post,這樣的接口,我們就要用到pathRewrite來(lái)重寫(xiě)地址,將本地路徑上的帶匹配前綴的路徑:http://localhost:8080/api/save/post上的前綴'/api'轉(zhuǎn)成 ‘ / '。以下第一種是網(wǎng)絡(luò)上大部分推薦的,但是我親測(cè)是無(wú)效的,估計(jì)他們多數(shù)用的上面的方法,沒(méi)有實(shí)際使用下面的方法,LZ用以下第一種方法折騰了2天無(wú)果,后去看了webpack-dev-server的issue,無(wú)意義試通了接口,即下面第二種方法,當(dāng)然也不排除第一種方法是我的版本問(wèn)題而沒(méi)有效果,所以如果大家試了第一種方法有效就當(dāng)我的方法沒(méi)說(shuō),如果無(wú)效,不妨試試我的第二種方法:

第一種方法(網(wǎng)上寫(xiě)的方法)

module.exports = { // ... dev: {  // 代理配置表,在這里可以配置特定的請(qǐng)求代理到對(duì)應(yīng)的API接口  proxyTable: {   '/api': {    target: 'http://www.xxx.com', // 你接口的域名    secure: false,   // 如果是https接口,需要配置這個(gè)參數(shù)為true    changeOrigin: true,   // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置為true    pathRewrite: {     '^/api': '/'    }   }  }, }}

第二種方法(親測(cè)有效的方法)

module.exports = { // ... dev: {  // 代理配置表,在這里可以配置特定的請(qǐng)求代理到對(duì)應(yīng)的API接口  proxyTable: {   '/api/*':{    target: "http://XXX.XXX.com",    changeOrigin: true,    pathRewrite: {'/api':'/'}   }  }, }}

即將上面的匹配項(xiàng)從 ‘/api' 改成了 '/api/*',至于為什么,我表示也沒(méi)有搞明白,不過(guò)確實(shí)調(diào)通了代理,希望對(duì)大家有幫助

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 芮城县| 河西区| 黑水县| 武强县| 唐山市| 横山县| 始兴县| 民乐县| 南昌市| 临高县| 陕西省| 韶关市| 东山县| 金溪县| 崇义县| 教育| 波密县| 潞西市| 武胜县| 台州市| 顺义区| 阿克陶县| 资阳市| 青冈县| 康马县| 牙克石市| 荥经县| 皋兰县| 临泽县| 昭苏县| 东城区| 如东县| 余姚市| 昆山市| 新沂市| 石家庄市| 汝南县| 博客| 汕头市| 中卫市| 云梦县|