如何从JQuery AJAX调用返回多个值?

时间:2011-01-26 22:43:34

标签: javascript jquery xml ajax string

我正在对返回XML的页面进行AJAX调用。事实证明,我还需要返回另一个独立的值以及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 个答案:

答案 0 :(得分:2)

正如您已经注意到的那样:您必须使用parsed而不是data ...

但是:不要使用plain-'text'而是'json'作为您的数据类型并更改您的asp脚本以输出有效的JSON。 然后data是一个JavaScript对象,因此您不必乱用拆分字符串等。

答案 1 :(得分:1)

哇。应该是:

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

答案 2 :(得分:1)

只是添加你的答案。

您看到<?的原因是因为数据是文本,这是一个字符数组,而xml以<?xml开头,第一个和第二个(第0个和第1个)值为<?