我想做的是从任何ajax调用发送返回数据,并且在ajaxComplete函数中也可以使用它。
因此,如果我有$.post
或$.get
或$.getJSON
等请求,请执行以下操作:
$.post(url, options, function(DATA)
{
$('output').html(DATA);
});
我也希望将相同的数据输入
$.ajaxComplete(function(event, XMLHttpRequest, ajaxOptions)
{
// do something with DATA that is returned by the ajax request
alert(DATA);
});
这意味着我想在全局ajaxComplete函数中获取与调用其中一个ajax函数时相同的数据。
感谢您的回复。
答案 0 :(得分:7)
XMLHttpRequest.responseText
请注意,如果在调用json时设置dataType或使用getJSON函数,则必须复制jquery在内部执行的操作并使用eval('('+ data +')')将数据导入json这样它就会镜像传递给成功回调的数据参数。
或者,就像Activa指出的那样,只需调用内部方法来保存工作。
答案 1 :(得分:4)
您可以使用
在ajaxComplete函数中转换为JSON$.parseJSON(xhr.responseText);
答案 2 :(得分:1)
没有简单的方法可以做到这一点,但您可以从xhr对象中提取数据。 jQuery包含一个内部函数,可以做到这一点,但它没有文档。
您可以这样调用此方法:
$.ajaxComplete(function(event, xhr, options)
{
var data = $.httpData(xhr,options.dataType);
alert(data);
});
但要注意:这在jQuery 1.3.2中是有效的,因为它没有文档,所以在将来的jQuery版本中可能会有所改变。