簡體   English   中英

角度代理路徑重寫未按預期運行

[英]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但我無法推斷出我做錯了什么。

我嘗試過的事情

  1. 刪除“pathRewrite”字段並更新后端以使用上下文路徑(結果:相同)
  2. 用 8080 替換端口(同樣的,只是用 8080 而不是 8081)
  3. submit (小寫)替換Submit (結果:相同)
  4. 使用我實現自己的 pathRewrite 的 JavaScript 文件:
"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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM