Как вернуть несколько значений из вызова JQuery AJAX? - PullRequest
1 голос
/ 27 января 2011

Я делаю AJAX-вызов на страницу, которая возвращает XML. Оказывается, мне нужно также вернуть другое автономное значение вместе с XML.

Вот вызов JQuery AJAX:

$.ajax({
        type: "GET",
        url: "filesearch.asp",
        data: "action=getresponse,
        dataType: "text",
        cache: false, 
        success: function(data){

        var parsed   = data.split('DELIMITER');
        var xml      = data[0];
        var myvalue  = data[1];
}

Страница, которая отправляет ответ, отправляет XML и мое значение, разделенные строкой DELIMITER . Кроме того, я установил dataType так, чтобы он обрабатывал полный ответ как текст, и я предполагаю, что я должен иметь возможность просто разбить строку в разделителе и получить доступ к обоим значениям в моей функции успеха. Firebug показывает, что я получил полный ответ правильно, но когда я регистрирую xml и myvalue на консоли, я получаю:

xml = < 
myvalue = ?

Есть идеи, что я делаю не так или как устранить неполадки?

Ответы [ 3 ]

2 голосов
/ 27 января 2011

Как вы уже заметили: вы должны использовать parsed вместо data ...

Но: не используйте простой тип 'text', а 'json' в качестве типа данных и измените сценарий asp для вывода действительного JSON. Тогда data - это объект JavaScript, поэтому вам не нужно возиться с разбиением строк и т. Д.

1 голос
/ 27 января 2011

Просто добавьте к своему ответу.

причина, по которой вы видите < и ?, заключается в том, что данные - это текст, представляющий собой массив символов, а xml начинается как <?xml с первогои вторые (0-е и 1-е) значения равны < и ?

1 голос
/ 27 января 2011

Ничего себе.Должно было быть:

var **parsed**   = data.split('DELIMITER');
var xml      = **parsed**[0];
var myvalue  = **parsed**[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...