401 Несанкционированный ответ на запрос опций CORS перед полетом - PullRequest
0 голосов
/ 10 апреля 2020

У меня проблема с CORS с моим WebApi в ASP. NET CORE, когда я делаю HTTP-запрос GET с моим Клиентом, у меня появляется эта ошибка:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://service.staging.domain.com/application-api-staging/account. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://service.staging.domain.com/application-api-staging/account. (Reason: CORS request did not succeed

https://service.staging.domain.com/application-api-staging - это мой База WebAPI https://client.staging.domain.com для моего веб-клиента.

Когда я проверяю консоль Firefox, у меня появляется заголовок запроса и ответа ниже:

Заголовки ответа

HTTP/1.1 401 Unauthorized
Server: nginx/1.10.3
Date: Fri, 10 Apr 2020 14:55:31 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 61
Connection: keep-alive
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
ETag: W/"3d-nALmWVEo7YlT78MufcqgeUavvX4"

Запрос заголовков

Host: service.staging.domain.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: */*
Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Access-Control-Request-Method: GET
Access-Control-Request-Headers: authorization,content-type,tenant
Referer: https://client.staging.domain.com/application/
Origin: https://client.staging.domain.com
Connection: keep-alive

В моем файле запуска webAPi я настроил CORS: startup.cs

readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

services.AddCors(options => {
  options.AddPolicy(MyAllowSpecificOrigins,
    builder => {
      builder
       .AllowAnyOrigin()
       .AllowAnyHeader()
       .AllowAnyMethod();
    });
});

app.UseCors(MyAllowSpecificOrigins)

И в своем контроллере.

accountController.cs

[EnableCors("_myAllowSpecificOrigins")]

Когда я тестирую с моим веб-клиентом и моим WebAPI в локальном режиме, веб-клиент -> http://localhost: 4200 WebApi -> https://localhost: 44354 В этом случае я могу сделать запрос, без проблем ... он работает

, но во втором случае: клиентская сеть -> http://localhost: 4200 WebApi -> https://service.staging.domain.com/application-api-staging В этом случае у меня проблема с CORS, не работает

то же самое в третьем случае с веб-клиентом и клиентом WebApi для развертывания веб-клиента - > https://client.staging.domain.com/application/ WebApi -> https://service.staging.domain.com/application-api-staging то же самое, у меня проблема с CORS, не работает

Та же ошибка, что и в начале, см. Мой вопрос о сообщение об ошибке.

Почему у меня ошибка CORS с подготовкой URL? и / или я могу это исправить? Это проблема nginx?

спасибо за вашу помощь.

ОБНОВЛЕНИЕ

WebAPI и Webclient работают на сервере Linux, поэтому я не использую IIS но я использую NGINX.

Как я могу настроить NGINX, или, может быть, это проблема конфигурации ядра asp. net?

1 Ответ

0 голосов
/ 21 апреля 2020

попробуй это, у меня сработало В launchSettings. json, под iisSettings, установите true для анонимной аутентификации и windowsAuthentication.

"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": true,
"iisExpress": {
  "applicationUrl": "http://localhost:8791/",
  "sslPort": 0
}

}

...