Почему я получаю запрос OPTIONS, когда я включил CORS в Web API? - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть проект с Angular Framework и Asp.net Core.

В моих ConfigureServices у меня есть следующий код:

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

И un Configure следующим образом:

 app.UseCors("CorsPolicy");
 app.UseMvc();

И после этого добавлен атрибут EnbaleCors в BaseApiController

[EnableCors("CorsPolicy")]
public class BaseApiController : Controller

В Angular добавлено следующее:

return this.http
        .post(url, body, { headers: headers, withCredentials: true })
        .map((response: Response) => {
            return response as any;
        })

Когда я запускаю приложение, у меня есть 2 запросав сети, один из них Метод запроса: ОПЦИИ с кодом состояния: 204 Нет контента и другие в моем запросе.

Где моя проблема?

Спасибо, что нашли время и поделитесь своими идеями

1 Ответ

0 голосов
/ 16 февраля 2019

Это не проблема, и вам не о чем беспокоиться.

По соображениям безопасности браузеры ограничивают запросы HTTP из разных источников, инициируемые из скриптов.Например, XMLHttpRequest и Fetch API следуют той же политике происхождения.Это означает, что веб-приложение, использующее эти API, может запрашивать только ресурсы HTTP из того же источника, из которого было загружено приложение, если только ответ другого источника не содержит правильные заголовки CORS.

OPTIONSЗапрос - это просто проверка безопасности для безопасных сетевых вызовов между источниками.Следовательно, когда вы делаете такой запрос, клиент отправляет запрос OPTIONS на тот же адрес, чтобы гарантировать, что безопасно отправить исходный запрос (GET / POST).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...