Angular 未使用代理配置运行

问题描述 投票:0回答:1

我的 dotnet (6) 后端在 localhost:9090 上运行,Angular 前端在 4200 上运行。

我使用 graphql 而不是 Rest(只是一个细节,没有太大变化),当我尝试达到时

http://localhost:9090/graphql

当然它说CORS起源有问题。我已经能够解决这个问题,将 CORS 添加到我的后端,但我不想接触后端,而是在 Angular 上创建代理。

我想在到达 http://localhost:9090/graphql 时告诉我的角度应用程序,我希望起源是 http://localhost:9090,这样我就不会遇到 CORS 问题(考虑到这将是相同的起源)。

我创建了 proxy-backend.conf.json 文件:

{
  "*": {
    "target": "http://localhost:9090",
    "secure": false,
    "logLevel": "debug"
  },
  "/graphql": {
    "target": "http://localhost:9090",
    "secure": false,
    "logLevel": "debug"
  }
}

并在 package.json 中添加该脚本:

“开始测试”:“ng服务--proxy-config proxy-backend.conf.json--端口4200”

当我运行 npm run start-test 时,它实际上执行了命令,但看起来代理没有工作。让我认为它不起作用的原因有三个:

  • 仍然存在 CORS 起源问题;
  • 我在应用程序启动时看不到任何代理调试;我记得在一个旧项目中,当开始时,我在控制台中看到类似“代理创建等”的信息,但没有在这里得到它;
  • 在旧项目中,我也进入控制台转发,就像当我调用 api 时,我可以在控制台上看到此链接重定向 -> 在那里,现在看不到它。

旧项目在 Angular 8 上运行,这个项目在 Angular 16 上运行,考虑到两个版本之间的差异,也许我只是做错了什么。

这是我在控制台中遇到的错误:

有什么想法吗?

angular proxy cors cross-domain same-origin-policy
1个回答
0
投票

单独解决。我做错的是在环境文件中有一个路径。仅当(在我的情况下)api 调用为 http://localhost:4200/graphql 时,代理才会工作,因此如果这是路径,则代理将工作并更改 http://localhost:9090 中的路径/graphql 并会改变原点。

我的错误是直接调用 http://localhost:9090/graphql ,这样代理就无法工作。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.