在開發(fā)中,經(jīng)常遇到這樣一個問題:

可是每次都是通過后端程序員通過設(shè)置header來解決的。可是現(xiàn)在我的開發(fā)中有這么一個問題,一個項目工程后臺有無數(shù)個,然而不能讓每個后臺去幫我設(shè)置,這個跨域問題必須要我前端解決。所以我百度查找到了用proxyTable來做代理的方法。
1、首先在文件夾config下面找到index,然后找到proxyTable,你會看到

它默認(rèn)是為空的。
2、ProxyTable的參數(shù):

context:確定當(dāng)請求匹配到哪些字段的時請求被代理
options
- options.target:要與url模塊解析的url字符串
- option.forward:要用url模塊解析的url字符串
- option.agent:要傳遞到http(s)的對象.request(請參閱節(jié)點的
https代理和http代理對象) - option.ssl:要傳遞給https.createServer()的對象
- option.ws:true/ false:如果要代理websockets
- option.xfwd:true / false,添加x-forward標(biāo)頭
- option.secure:true / false,如果要驗證SSL Certs
- option.toProxy:true / false,將絕對URL傳遞給path(用于代理代理)
- option.prependPath:true / false,默認(rèn)值:true - 指定是否要將目標(biāo)路徑添加到代理路徑
- option.ignorePath:true / false,默認(rèn)值:false - 指定是否要忽略傳入請求的代理路徑(注意:如果需要,您將必須附加/手動)。
- option.localAddress:綁定傳出連接的本地接口字符串
- option.changeOrigin:true / false,默認(rèn)值:false - 將主機(jī)頭的起始位置更改為目標(biāo)URL
- option.auth:基本認(rèn)證,即'user:password'來計算授權(quán)頭。
- option.hostRewrite:重寫(301/302/307/308)重定向上的位置主機(jī)名。
- option.autoRewrite:根據(jù)請求的主機(jī)/端口重寫(301/302/307/308)重定向的位置主機(jī)/端口。默認(rèn)值:false。
- option.protocolRewrite:將(301/302/307/308)上的位置協(xié)議重寫為“http”或“https”。默認(rèn)值:null。
- option.cookieDomainRewrite:重寫set-cookie標(biāo)題的域??赡艿闹担篺alse(默認(rèn)):禁用cookie重寫String:例如,新cookieDomainRewrite: "new.domain"。要刪除域,請使用cookieDomainRewrite: ""。
對象:將域映射到新域,用于"*"匹配所有域。例如,保持一個域不變,重寫一個域并刪除其他域:
cookieDomainRewrite: {
"unchanged.domain": "unchanged.domain",
"old.domain": "new.domain",
"*": ""
}
- option.headers:對象,添加請求頭。(實施例:{host:'www.example.org'})
- option.proxyTimeout:當(dāng)代理沒有從目標(biāo)接收到響應(yīng)時,超時(以毫秒為單位)這里是它的官方鏈接:https://github.com/chimurai/http-proxy-middleware
3、運(yùn)用例子
- 代理一個接口:
proxyTable: {
'/chaos' : {
target:" http://172.32.11.23:10191 ",
changeOrigin: true,
pathRewrite: {
' ^/chaos ' : '/chaos'
}
}
}
- 代理多個接口:
proxyTable: {
'/chaos' : {
target:" http://172.32.11.23:10191 ",
changeOrigin: true,
pathRewrite: {
' ^/chaos ' : '/chaos'
}
},
'/insight' : {
target:" http://172.43.11.33:8080 ",
changeOrigin: true,
pathRewrite: {
' ^/insight ' : ''
}
}
}