Простой XML HttpRequest вопрос - PullRequest
       15

Простой XML HttpRequest вопрос

2 голосов
/ 05 февраля 2011

Я пытаюсь запустить запрос на получение некоторых данных с внешнего веб-сайта с помощью API.

Если я скопирую и вставлю запрос в мой веб-браузер, он будет работать нормально. Пример, такой как (http://example.com/json/user/search/all) Я вижу результаты в окне браузера.

Однако я пытаюсь запустить этот запрос с веб-сайта, и у меня возникла проблема: Используя некоторый JavaScript, как это: var req = new XMLHttpRequest (); req.open («GET», вышеуказанное, верно) req.send ()

Я получаю сообщение об ошибке: Происхождение (MyDOMAIN) не разрешено контролем доступа Allow Origin.

Опять же, я довольно новичок в XMLHttpRequests и думаю, что это довольно просто решить. Кто-нибудь знает? (Я пытался найти в Google, но не смог найти хороший ответ) Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 05 февраля 2011

Проблема заключается в политике того же происхождения .Это правило, что XMLHTTPRequests может не использоваться, кроме как в том же домене, что и исходная страница.Это по соображениям безопасности.

Самый простой способ обойти это - написать сценарий на стороне сервера, который проксирует запрос для вас.

2 голосов
/ 05 февраля 2011

Вам не разрешено делать межсайтовые XMLHttpRequests , и для этого необходимо использовать прокси-сервер.

В этой статье от Yahoo подробно объясняется и дается больше идей о том, как ее решить.Но в принципе этого делать не следует, поскольку это ограничение существует в целях безопасности.

Было бы лучше, если бы вы использовали PHP и, например, fopen() и просто вызывали эту страницу с помощью объекта XMLHttpRequest.

1 голос
/ 05 февраля 2011

Это защита вашего браузера от межсайтовых скриптов. Вам не разрешен доступ к другим страницам, которые принадлежат другому домену.

РЕДАКТИРОВАТЬ: Также проверьте это: Кросс-сайт XMLHttpRequest

...