CLI CORS Proxy, не меняющий происхождение, все еще получает 403 по запросам API? - PullRequest
0 голосов
/ 04 сентября 2018

Да, я нашел тонну подобных вещей, но все еще не решен для моего экземпляра. Я бы хотел не убивать безопасность на стороне браузера и позволить прокси-серверу выполнять свою работу, но я боюсь, что мне не хватает некоторых бессмысленных деталей в настройке, и я ни в коем случае не эксперт 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 по умолчанию.

Итак, я настраиваю прокси, как и ожидалось, в angular.json;

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "angular-proj:build",
            "proxyConfig": "./proxy.conf.json"
          },

и добавьте proxy.conf.json;

{
    "/some/rest/*": {
      "target": "http://localhost:10000",
      "secure": false,
      "changeOrigin": true,
      "logLevel": "debug"
    }
  }

Я подаю его и даже отмечаю proxy.conf, который подтверждает CLI;

[HPM] Proxy created: /some/rest -> http://localhost:10000 и т. Д. *

.... за исключением того, что я все еще получаю 403, и все еще вижу в заголовках запроса *; 1021 *

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

Итак, мой вопрос, что за пустяки я здесь упускаю? Я не хочу помечать звездочками запросы на все источники и не хочу отключать проверки браузера, я бы предпочел, чтобы это было красиво упаковано в конфигурации сервера, как будто я делаю другую пару глаза более чем приветствуются. Приветствия

ADDENDUM : Мой GET, кажется, проходит нормально, но что-то вроде Access-Control-Request-Method: POST показывается как Request Method: OPTIONS, и вот где я получаю свои 403 ... почему POST станет ОПЦИОНАМИ ??

ADDENDUM # 2 : Стоит упомянуть, я получаю эту проблему в Chrome / Firefox, но в Edge все кошерно ???

ADDENDUM # 3 : Это работает как --aot=true с прокси.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Проблема была найдена уникальным путем копания больше. Выяснилось, что в цепочечной конфигурации на стороне сервера (aspnet api v1) было скрытое условие для OPTIONS, ищущего UrlReferrer.Authority, которого нет, скажем, в новом новом экземпляре.

Вытащил его, изменил Access-Control-Allow-Origin соответственно и выключил в гонках.

Приветствия

0 голосов
/ 12 сентября 2018

Следующие заголовки неверны, и именно поэтому ваш браузер по-прежнему вызывает рукопожатие «та же политика происхождения»:

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

Они должны быть:

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

Я твердо верю, что вы не изменили свои запросы с http://localhost:10000/* на http://localhost:4200/some/rest/*, и что "тонна подобных вещей" не включала это: Проблема Angular2 CORS на localhost

...