Я пытаюсь разрешить доступ к каждому поддомену на моем сайте, чтобы разрешить перекрестные поддомены AJAX. Есть ли способ указать все поддомены сайта как *.example.com
или в качестве альтернативы, почему следующее не работает, когда у меня есть несколько доменов, перечисленных:Укажите несколько поддоменов с контролем доступа. Начало
header('Access-Control-Allow-Origin: http://api.example.com http://www.example.com');
Я прочитал через следующий вопрос, который, как представляется, быть похожими , если не то же самое, что и этот, кроме того, что я хочу получить доступ к подобластям, и это относится к общим доменам.
Access-Control-Allow-Origin Multiple Origin Domains?
Если поставленный выше вопрос является решением этой проблемы, то, как я смог получить свое происхождение от заголовка. Похоже, что $ _SERVER ['HTTP_ORIGIN'] очень ненадежный и даже не перекрестный браузер. Мне нужно увидеть источник в любом браузере, который может показать ошибку при попытке отправить вызов AJAX с помощью javascript.
Как вы сказали, на первую часть вашего вопроса отвечает по ссылке. Что касается вашего второго вопроса: если браузер пытается выполнить вызов Ajax, который запрещен политиками перекрестных доменов, запрос будет терпеть неудачу и вообще не достигнет сервера. Ошибка должна быть обработана в браузере. –
Я знаю, что я получу ошибку, но эта ошибка будет предоставлена после того, как вызов попытается получить доступ к внешнему файлу. Если файл отклонит его, тогда будет сброшена ошибка. Если я настрою заголовок, чтобы разрешить доступ ко всем, то он будет работать, но это слишком открыто для меня, поэтому я хотел бы установить его в отношении происхождения запроса. Поэтому я хотел бы знать, как получить исходный запрос с помощью PHP. –
Можете ли вы рассказать о том, что вы подразумеваете под «$ _SERVER ['HTTP_ORIGIN'], очень ненадежным и даже не перекрестным браузером»? $ _SERVER ['HTTP_ORIGIN'] - это значение на стороне сервера, которое не выполняется в браузере. – monsur