gpt4 book ai didi

Angular Proxy.Conf.Json 不适用于多个 api

转载 作者:行者123 更新时间:2023-12-04 01:07:37 47 4
gpt4 key购买 nike

我有以下 proxy.conf.json、日志行和 api 调用。

  {
"/first/api/": {
"target": "/first/api/",
"secure": false,
"logLevel": "debug"
},
"/second/api/": {
"target": "/second/api/",
"secure": false,
"logLevel": "debug"
}


[HPM] GET /first/api/values-> /first/api/
[HPM] GET /second/api/dummy -> /second/api/

return this.http.get<any>(this.firstApi + 'values')
return this.http.get<any>(this.secondApi + 'dummy')

鉴于我可以看到日志行,我相信 proxy.conf.json 正确接收了 api 调用,但是当调用消失时我收到了 404。日志只输出目标,所以我不清楚如何编写我需要的 url,例如:
本地主机/第一个/api/值

当只有一个 api 时,这可以正常工作:
  {
"/api/": {
"target": "/first/",
"secure": false
}

谁能建议我进一步的调试步骤?

已解决

yanky_cranky 的回答是正确的。作为了解他的回答与我所看到的内容有何关联的助手,我还需要查看我的 IIS 日志。在这里我可以看到被调用的网址。

最佳答案

首先,在这里您没有正确利用 Angular 的代理概念。

1) 关于代理 :代理可用于将诸如“/first/api”之类的任何请求映射到您无法触及的特定“域”。
如果 api 不是公开的,如果 api 指向不同的主机,它们将导致 cors 问题(这是浏览器的属性):{即,主机名或端口或两者都不同}
使用 Angular,在我们的开发阶段,我们可以利用 Nginix 提供的相同反向代理概念,并将其定位到正确的领域。

More On Proxy Here

2)你的 Nginix conf 将导致:
以下路径:

  {
"/first/api/": {
"target": "/first/api/",
"secure": false,
"logLevel": "debug"
},

/first/api/first/api/,因此你得到 404
  "/second/api/": {
"target": "/second/api/",
"secure": false,
"logLevel": "debug"
}

/second/api/second/api/,相同的 404

3) 正确配置 :
 {
"/first/api/": {

"target": "http://localhost:{portNo}",

"secure": false,

"logLevel": "debug"

},
"/second/api/": {

"target": "http://localhost:{portNo}",

"secure": false,

"logLevel": "debug"

}

然后这些 api 将针对:

http://localhost :{portNo}/first/api

http://localhost :{portNo}/second/api

干杯 (y)

关于Angular Proxy.Conf.Json 不适用于多个 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56497414/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com