Синтаксис Access-Control-Allow-Origin
Я хочу разрешить совместное использование ресурсов между всеми субдоменами from.example.com.
Поэтому я добавил заголовок совместного использования ресурсов Cross-origin, как показано ниже, на страницу в subdomain1.to.example.com.
<?php header('Access-Control-Allow-Origin: *.from.example.com');
И я попытался получить доступ к форме страницы subdomain1.from.example.com с помощью ajax.
Я не получил ответа. Поэтому я просто изменил заголовок выше, как показано ниже.
<?php header('Access-Control-Allow-Origin: http://subdomain1.from.example.com');
Это хорошо работает только для subdomain1.from.example.com.
В чем проблема с первым заголовком?
Ответы
Ответ 1
В заголовке Access-Control-Allow-Origin
не допускаются подстановочные знаки. Это должно быть точное совпадение. Вы можете либо разрешить все домены, установив значение *
, либо условно отразить значение заголовка запроса Origin
, если оно соответствует одному из разрешенных доменов.
Обратите внимание, что Спецификация Origin позволяет для нескольких источников, разделенных пробелом. Однако я не уверен, что это работает с заголовком Access-Control-Allow-Origin
. Возможно, стоит попробовать.