![](/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.