当前位置: 首页 > 知识库问答 >
问题:

CLI CORS代理不改变来源,仍然得到403的API请求?

郏实
2023-03-14

是的,我发现了很多类似的东西,但仍然没有解决我的例子。我想避免杀死浏览器端的安全性,而是让代理来完成它的工作,但我担心我在设置中错过了一些无聊的细节,我不是CORS专家。

所以,我得到的是...403;

Failed to load http://localhost:10000/some/rest/endpoint: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

其中localhost:10000是我的api url,:4200是默认的Angular CLI实例

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "angular-proj:build",
            "proxyConfig": "./proxy.conf.json"
          },
{
    "/some/rest/*": {
      "target": "http://localhost:10000",
      "secure": false,
      "changeOrigin": true,
      "logLevel": "debug"
    }
  }

....除了我仍然得到403,并且仍然在request*头中看到;

Host: localhost:10000
Origin: http://localhost:4200

所以我的问题是,我在这里遗漏了什么无聊的细节?我不想在所有来源的请求上打上星号,也不想关闭浏览器检查,我更希望把它很好地捆绑在服务配置中,就像我这样做一样,另一双眼睛是非常受欢迎的。干杯

补充:我的get似乎经过了很好的过程,但是像access-control-request-method:POST这样的request method:options显示为request method:options,这就是我得到403的地方...为什么POST会变成options??

附录3:这运行为--aot=true和代理。

共有1个答案

冉丰茂
2023-03-14

以下标题是错误的,这就是浏览器仍然触发“同源策略”握手的原因:

Host: localhost:10000
Origin: http://localhost:4200

它们应该是:

Host: localhost:4200
Origin: http://localhost:4200

我坚信您没有将请求从http://localhost:10000/*更改为http://localhost:4200/some/rest/*,而且“大量类似的内容”不包括以下内容:localhost:Angular2 CORS问题

 类似资料: