![](/img/trans.png)
[英]Angular proxy path rewrite not working during http get request call?
[英]Angular proxy path rewrite not behaving as expected
我正在嘗試構建一個可以到達后端服務器的角度應用程序。 我已經設置了一個應用程序代理文件,以便我的 Angular 應用程序可以調用這個后端。
{
"/Review/*": {
"target": "http://localhost:8082",
"secure": false,
"logLevel": "debug",
"changeOrigin": true,
"pathRewrite": {"^/Review" : ""}
},
"/Submit/*": {
"target": "http://localhost:8081",
"secure": false,
"logLevel": "debug",
"changeOrigin": true,
"pathRewrite": {"^/Submit" : ""}
}
}
這是我要發送的路徑:
http://localhost:4200/Submit/Auth/login
這是我看到的預期和實際重寫:
localhost:8081/Auth/login (expected)
localhost:8081/login (Actual)
是否有發生這種情況的原因以及確保pathRewrite
以可預測的方式處理長而復雜的端點的方法? 就像,只是讓它刪除submit
?
Angular Version:
Angular CLI: 13.1.4
Node: 14.17.3
Package Manager: npm 6.14.13
OS: win32 x64
注意:我確實遇到了This Stack-overflow question但我無法推斷出我做錯了什么。
submit
(小寫)替換Submit
(結果:相同)"pathRewrite": function (path, req) {
let ret = path.replace("/submit/", "/");
console.log("Rewriting path {} to {}",path, ret);
return ret;
}
(結果:雖然我在控制台中看到了同樣的情況Rewriting path {} to {} /submit/Auth/login /Auth/login
)
這讓我想知道問題是否可能不是路徑重寫,而是我不知道的使用它的軟件的某些方面。
當我的瀏覽器向 4200 發出請求時,4200 以http://localhost:8081/login
的位置響應 302
我做了一些挖掘,結果發現問題可能出在后端。 它一直返回401。
我修復了后端,使其可以在指定的端點返回 200,現在 Angular 代理的行為符合預期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.