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

我正在对返回XML的页面进行AJAX调用。 事实certificate,我还需要返回另一个独立的值以及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显示我得到了正确的完整响应,但是当我将xmlmyvalue记录到控制台时,我得到:

 xml = < myvalue = ? 

我有什么问题或者如何排除故障?

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

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

哇。 应该是:

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

只是为了补充你的答案。

你看到<?的原因 是因为数据是文本,这是一个字符数组,并且当xml以开头时,第一个和第二个(第0个和第一个)值是<?