Как исправить «Заголовок 'Access-Control-Allow-Origin' содержит несколько значений '*, *', но разрешено только одно."? - PullRequest
0 голосов
/ 26 января 2020

Google Chrome жалуется на AJAX - Запросы к другой службе относительно отсутствующей настройки CORS, как и следовало ожидать в этом состоянии без соответствующих заголовков CORS:

curl -sD - -o /dev/null https://api.example.xom/service

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

HTTP/2 200
date: Sun, 26 Jan 2020 14:26:25 GMT
server: Apache
cache-control: no-cache, private
vary: Accept-Encoding,User-Agent
content-type: text/html; charset=UTF-8

Google Chrome заявляет:

... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Затем мы добавляем следующий заголовок к нашей конфигурации Apache в .htaccess:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

Проверка отправленных заголовков работать должным образом:

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

HTTP/2 200
date: Sun, 26 Jan 2020 14:26:25 GMT
server: Apache
cache-control: no-cache, private
vary: Accept-Encoding,User-Agent
access-control-allow-origin: *
content-type: text/html; charset=UTF-8

Но теперь Google Chrome жалуется, что Источник был отправлен дважды:

 The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

Как это исправить? Как заставить Google Chrome принимать заголовок источника только один раз?

1 Ответ

1 голос
/ 26 января 2020

В моем случае я использовал следующий фрагмент кода, который работает по назначению:

<IfModule mod_headers.c>
    Header always set Access-Control-Allow-Origin: "*"
    Header always set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...