Простой вопрос XML HttpRequest
-
29-10-2019 - |
Вопрос
Я пытаюсь запустить запрос некоторых данных с внешнего веб-сайта через API.
Если я скопирую и вставлю запрос в свой веб-браузер, он будет работать нормально. Пример, такой как (http://example.com/json/user/search/all) Я вижу результаты в окне браузера.
Однако я пытаюсь запустить этот запрос с веб-сайта и сталкиваюсь с проблемой: Используя какой-нибудь javascript, например: var req= новый XMLHttpRequest (); req.open ('GET', вышеупомянутый URL, истина) req.send ()
Я получаю сообщение об ошибке: Origin (MyDOMAIN) не разрешен Access Control Allow Origin.
Опять же, я новичок в XMLHttpRequests и думаю, что это довольно просто решить. Кто-нибудь знает?(Я пробовал искать в Google, но не нашел хорошего ответа) Заранее спасибо.
Решение
Вам не разрешено выполнять межсайтовые XMLHttpRequests , и вам необходимо использоватьпрокси для этого.
Эта статья от Yahoo подробно объясняет это и дает больше идей о том, какрешить это.Но в принципе этого делать не следует, потому что это ограничение существует в целях безопасности.
Было бы лучше, если бы вы, например, использовали PHP и fopen()
и просто вызывали эту страницу, используя свой объект XMLHttpRequest.
Другие советы
Проблема заключается в политике одинакового происхождения .Это правило, что запросы XMLHTTPRequests могут не использоваться, кроме как в том же домене, что и исходная страница.Это сделано из соображений безопасности.
Самый простой способ обойти это - написать сценарий на стороне сервера, который будет проксировать запрос за вас.
Это защита вашего браузера от перекрестных сценариев.Вам не разрешен доступ к другим страницам из другого домена.
РЕДАКТИРОВАТЬ. Также проверьте это: Межсайтовый XMLHttpRequest