Ошибка XML jQuery: «В запрошенном ресурсе нет заголовка 'Access-Control-Allow-Origin'»
При попытке получить доступ к XML-файлу, расположенному в другом домене, с помощью jQuery, вы можете столкнуться с сообщением об ошибке: «В запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin». Эта ошибка возникает из-за политики одного и того же происхождения, которая ограничивает вызовы AJAX между источниками.
Понимание политики одного и того же происхождения
Политика одинакового происхождения обеспечивает следующее веб-браузеры разрешают вызовы AJAX только к службам, размещенным в том же домене, что и HTML-страница, отправляющая запрос. В данном примере страница HTML размещается по адресу http://run.jsbin.com/, а файл XML расположен по адресу http://www.ecb.europa.eu/, что приводит к запросу между источниками, который блокируется браузером.
Включение запросов из разных источников (CORS)
Чтобы разрешить запросы из разных источников, сервер должен включать в свой ответ соответствующие заголовки. Одним из этих заголовков является заголовок Access-Control-Allow-Origin, который указывает источники, которым разрешен доступ к ресурсу.
В случае XML-файла сервер ЕЦБ не предоставляет необходимые CORS. заголовки, отсюда и сообщение об ошибке. Чтобы решить эту проблему, сервер необходимо настроить для включения следующих заголовков:
Access-Control-Allow-Origin: http://run.jsbin.com Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type
Примечание о предполетных запросах
В определенных случаях, например при выполнении запросов POST с непростыми заголовками, браузер может выполнить предварительный запрос OPTIONS, чтобы определить, поддерживает ли сервер CORS для конкретного запроса. Если ответ сервера на этот предполетный запрос не содержит соответствующих заголовков CORS, основной запрос завершится с тем же сообщением об ошибке. Таким образом, важно включать необходимые заголовки в ответы как на предполетный, так и на основной запросы.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3