2010-06-09 2 views
4

Я использую следующий JQuery, чтобы вернуть XML, который находится на том же поддомене:Как обрабатывать xml, возвращаемый jsonp с помощью jquery?

$.getJSON(myurl, function(data) 
{ 
    debugger; 
    alert(data); 
}); 

Теперь всякий раз, когда я запускаю это в поджигатель, я получаю ошибку JS в поджигатель говоря: отсутствует; перед заявлением. Возвращенные данные выглядят так:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="somenamespace">...somedata...</string> 

Данные, которые я хочу, возвращаются, но я не уверен, как их использовать. Мне нужно получить somedata, однако я не могу. Firebug даже не останавливается в функции. Как я могу продолжить работу?

ответ

0

Кажется, что вы ожидаете возвращения XML, но вы вызываете функцию, ожидающую JSON. XML и JSON - это два разных способа кодирования данных.

Если вы хотите получить XML в виде строки, вы можете использовать функцию jQuery get. Это потребует, чтобы вы сами разбирали строку, чтобы извлечь ...somedata....

Но если вы хотите обработать содержание ответа XML с JQuery, то вам лучше всего использовать ajax функцию:

$.ajax({ 
    url: myurl, 
    dataType: 'xml', 
    success: function(data) { 
     debugger; 
     alert(data); 
     // untested: 
     var theValue = $('string', data).text(); 
    } 
}); 
+1

Спасибо, это работает, когда URL на другом домене? – vikasde

+0

Я получаю 403 при использовании типа данных xml. – vikasde

+1

http://api.jquery.com/jQuery.ajax/#dataType Например, если вы хотите, чтобы текстовый ответ обрабатывался как XML, используйте «text xml» для dataType. Вы также можете сделать запрос JSONP, получить его как текст и интерпретировать jQuery как XML: «jsonp text xml». Точно так же строчная строка, такая как «jsonp xml», сначала попытается преобразовать из jsonp в xml, а в противном случае - преобразовать из jsonp в текст, а затем из текста в xml. – jhanifen