Междоменный Ajax-вызов не получает элемент. Расположение: moz-nullprincipal - PullRequest
9 голосов
/ 14 августа 2011

Я пытаюсь вызвать междоменную веб-службу с помощью вызова jquery $.ajax() Служба возвращает

<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://www.webserviceX.NET/">1.4248</double>

Если я укажу dataType xml (или ничего не указываю - jquery угадает правильно), яПолучение ошибки XML Parsing Error: no element found Location: moz-nullprincipal:{4030734c-b902-4251-9067-1d1b5b15fc72} Line Number 1, Column 1: (похоже, ничего не возвращается из сервиса).Однако, если я укажу dataType jsonp или script - я вижу в firebug, что все возвращается правильно;однако jquery, по-видимому, пытается оценить результаты и выдает соответствующую ошибку (отсутствует точка с запятой или подобное).

Есть ли способ в jQuery разрешить междоменный вызов и не оценивать его?

Примечания:

  1. Я знаю , что запасным вариантом является вызов на моем сервере программы, которая будет вызывать веб-службу и возвращать результат в браузер;
  2. Я сделал указать crossDomain: true.Кажется, это не имеет значения.
  3. Функция «error» вызывает .Но вместо исходного значения «data» содержит «parseerror».

1 Ответ

8 голосов
/ 14 августа 2011

Междоменный ajax разрешен только для JSONP, но не для XML

. В JQuery 1.5 добавлен параметр crossDomain:true, который просто добавляет значение ?callback=> к url.Если вы установите этот параметр, вы также должны установить dataType:'json'.Междоменный URL также должен поддерживать JSONP и предоставлять ожидаемые данные как таковые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...