Назад | Перейти на главную страницу

Службы Nginx не выполняют междоменные запросы, если служба возвращает ошибку

Я делаю междоменный запрос в своем веб-приложении.

Я установил заголовки CORS на Nginx. Все работает нормально, за исключением случаев, когда служба возвращает ошибку, например 404, 400, 500 и т. Д., Вместо получения кода ошибки служба выдает ошибку с сообщением, что Origin *********** is not allowed by Access-Control-Allow-Origin.

Есть идеи, почему это может происходить?

Так выглядит настройка nginx;

location /api {
    add_header Access-Control-Allow-Origin *;
}

Ты можешь использовать всегда директива, запускающая nginx 1.7.5 (* Особенность: параметр always в директиве add_header.)

add_header 'Access-Control-Allow-Origin' '*' always;

К сожалению add_header не будет работать с кодами состояния, отличными от 200, 204, 301, 302 или 304. Вы можете найти это в документации здесь.

Возможно, вы сможете использовать этот плагин для того, что хотите:

https://www.nginx.com/resources/wiki/modules/headers_more/

Я могу подтвердить, что headers_more модуль (упомянутый в этот ответ) можно использовать для добавления заголовков для всех ответов HTTP, независимо от кода состояния.

Примечание: Вам может понадобиться обходной путь на https://github.com/openresty/headers-more-nginx-module/issues/24 для сборки этого модуля с помощью Nginx в Windows, но он работает должным образом после компиляции.