Функция безопасности всех браузеров не позволяет отправлять запросы XMLHttp другим доменам.Это называется Одинаковая политика происхождения .Есть несколько способов обойти ту же политику происхождения,
1.Предоставьте прокси для службы, используя язык на стороне сервера.
Обычно вы будете отправлять запросы непосредственно в веб-службу, которая, в свою очередь, будет возвращать ответ, например:
╒═══════════════════╕ ──────────────> ╒═══════════════════╕
│ Client/Javascript │ │ Server/WebService │
╘═══════════════════╛ <────────────── ╘═══════════════════╛
Прокси-сервер включает в себя написание серверного скрипта для посредника:
╒═══════════════════╕ ────> ╒════════════════════╕ ────> ╒═══════════════════╕
│ Client/Javascript │ │ Same domain server │ │ Server/WebService |
╘═══════════════════╛ <──── ╘════════════════════╛ <──── ╘═══════════════════╛
Таким образом, браузер отправляет запрос в тот же домен, он не блокируется политикой того же происхождения.Сервер, в свою очередь, отправляет запрос в удаленный веб-сервис, который возвращает ответ.Наконец, тот же сервер домена возвращает этот ответ сценарию, который все еще ожидает.Это работает, потому что запросы, сделанные сервером, не подчиняются политике того же источника.
2.Проверьте, предлагает ли сервис формат данных JSONP .
JSONP работает путем добавления элемента script на текущую страницу с атрибутом src , указывающим на сетьоказание услуг.Веб-сервис возвращает ответ в виде вызова функции JavaScript с данными в литерале объекта JavaScript, который передается в качестве аргумента функции.Все, что вам нужно сделать, - это предварительно определить эту функцию, чтобы при завершении запроса скрипта / веб-службы ваша предопределенная функция вызывалась с данными, чтобы вы могли ее обработать.