Angular CLI和http-proxy-middleware是否可以拦截/代理对外部 URL 的调用,例如 Azure Functions 或 Firebase 函数等无云服务器功能?
例如,针对外部基于云的函数 URL,例如https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ==
,您将如何设置proxy.conf.json
拦截此 URL/路径?
以下配置确实成功拦截了 HTTP 请求(target
出于开发目的,设置为本地运行的云功能 localhost 端口)。Angular 应用程序使用 command 启动"ng serve --proxy-config proxy.conf.json --open"
。
{
"/api": {
"target": "http://localhost:1234",
"secure": false
}
}
{
"foobar.azurewebsites.net/api": {
"target": "http://localhost:1234",
"secure": false
}
}
{
"**/api": {
"target": "http://localhost:1234",
"secure": false
}
}
对任何这些配置的HttpClient
调用https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ==
仍会转到生产云功能 URL,而不是http://localhost:1234/api
.
更新:根据我尝试使用多条目配置并使用启动应用程序的建议ng serve --proxy-config proxy.conf.js --open
,但它仍然没有捕获 HTTP 调用:
const PROXY_CONFIG = [{
context: [
"/api",
"**/api",
"**/api/*",
"https://foobar.azurewebsites.net/api/",
"foobar.azurewebsites.net/api/",
"foobar.azurewebsites.net/api/*",
"*foobar.azurewebsites.net/api"
],
target: "http://localhost:1234",
secure: false
}]
module.exports = PROXY_CONFIG;
感谢您提供任何帮助!