Получите кросс-домен данных XML с помощью JQuery - PullRequest
3 голосов
/ 31 мая 2010

Эй, ребята, есть ли способ загрузить кросс-домен данных XML с помощью JQuery (= на стороне клиента)?

$.get('http://otherdomain.com/data.xml', function(xml) { }

Выше не работает - я должен полагаться на JSONP, или есть способ загрузить XML?

Ответы [ 4 ]

2 голосов
/ 31 мая 2010

Нет способа загрузить XML. Так что да, используя «стандартные» xmlhttprequests, вам нужен JSONpadding.

Если сервер поддерживает « Cross-Origin Resource Sharing (CORS) », вы можете легко получить данные из чужого домена. Это означает, что вы должны добавить пользовательский заголовок в ваш XmlHttpRequest ('Origin') и сервер решает, разрешит ли он запрос или нет.

1 голос
/ 31 мая 2010

Вам необходимо использовать JSONP .

0 голосов
/ 23 июля 2015

Я обнаружил, что с Chrome некоторые методы jsonp не работают.

Либо вы выбираете json и получаете междоменную ошибку, либо формат jsonp и xml не распознается как ожидающий формат jsonp.

Итак, решение заключается в использовании API Java Query Language для извлечения данных во всех браузерах без междоменной ошибки.

Есть много способов позвонить по ссылке и поиграть с данными xml.

Я не могу опубликовать свой код, но вы легко найдете фрагменты в Интернете.

Таким образом, вы должны определить свой URL для запроса Yahoo API с помощью метода encodeURI. Метод getJSON исходит из jQuery, а затем вы анализируете массив текстовых результатов в необработанном xml.

0 голосов
/ 28 сентября 2011

Что ж, мы легко можем получить данные из некоторых функций php, таких как file_get_content и curl (как и у php / ROR dev, другие языки имеют те же функции). Используя эти функции, мы можем получить данные XML из чужого домена,

Теперь вопрос, почему мы не можем делать то же самое при использовании AJAX, Насколько я понимаю, функция curl и file_get_content не вызывает HTTP-запрос, а Ajax делает.

В двух словах, мы не можем загрузить данные XML с помощью AJAX.

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