Вопрос

Я пытаюсь запустить запрос некоторых данных с внешнего веб-сайта через 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top