最近遇到這個(gè)需要單頁(yè)訪問(wèn)跨域后臺(tái)的問(wèn)題。
可以按照如下設(shè)置:
proxyTable: {'/list': {target: 'http://api.xxxxxxxx.com',pathRewrite: {'^/list': '/list'}}}這樣我們?cè)趯憉rl的時(shí)候,只用寫成/list/1就可以代表api.xxxxxxxx.com/list/1.
那么又是如何解決跨域問(wèn)題的呢?其實(shí)在上面的'list'的參數(shù)里有一個(gè)changeOrigin參數(shù),接收一個(gè)布爾值,如果設(shè)置為true,那么本地會(huì)虛擬一個(gè)服務(wù)端接收你的請(qǐng)求并代你發(fā)送該請(qǐng)求,這樣就不會(huì)有跨域問(wèn)題了,當(dāng)然這只適用于開發(fā)環(huán)境。增加的代碼如下所示:
proxyTable: {'/list': {target: 'http://api.xxxxxxxx.com',changeOrigin: true,pathRewrite: {'^/list': '/list'}}}遇到了網(wǎng)上很多人說(shuō)的,proxyTable無(wú)論如何修改,都沒(méi)效果的現(xiàn)象。
經(jīng)過(guò)幾輪測(cè)試,總結(jié)出一下幾種解決方案:
1.(非常重要)確保proxyTable配置的地址能訪問(wèn),因?yàn)槿绻荒茉L問(wèn),在瀏覽器F12調(diào)試的時(shí)候看到的依然會(huì)是提示404。
并且注意,在F12看到的js提示錯(cuò)誤的域名,是js寫的那個(gè)域名,并不是代理后的域名。
另外配置正常的話,在idea的控制臺(tái),會(huì)有錯(cuò)誤提示顯示,例如:
Your application is running here:http://localhost:8082 [HPM] Error occurred while trying to proxy request /api/user/ts from localhost:8082 to http://localhost:1920/ (ECONNREFUSED)
2.(奇葩解決)個(gè)人感覺(jué)這個(gè)http代理的插件有緩存,proxyTable的修改會(huì)無(wú)效,這時(shí)候可以嘗試修改啟動(dòng)項(xiàng)目的端口,就在proxyTable屬性配置的下面幾行有個(gè)port: 8080,改成其他,例如8081,就會(huì)有效,然后再改回來(lái)就好。
新聞熱點(diǎn)
疑難解答
圖片精選