jQuery ajax成功选项中返回的参数是什么?

时间:2010-01-28 16:39:11

标签: jquery

jQuery documentation表示返回以下内容:

  

成功(data,textStatus,   XMLHttpRequest的)功能

     

请求时要调用的函数   成功。该函数被传递   三个参数:返回的数据   从服务器,格式化   到'dataType'参数;一个字符串   描述状态;和   XMLHttpRequest对象。这是一个Ajax   事件

我只使用“data”参数。 “textStatus”的目的是什么?...当我将这个变量放入警报时(在成功函数内),我得到“未定义” 我可以从XMLHttpRequest获得什么?以及如何访问它?

由于

3 个答案:

答案 0 :(得分:2)

您可以使用XMLHttpRequest对象获取服务器发送的任何response headers。这对您控制的服务的用处有限,因为通常最好传回响应主体的JSON或XML中的所有信息,但它对于与您无法控制的接口的服务进行交谈可能很有用,标题中的信息。

textStatus可用于错误回调,以告诉您请求的距离。但是为了成功它只会告诉你服务器是否返回了200 OK响应(在这种情况下你应该得到'success')或者你是否得到304 Not Modified并且从浏览器缓存返回了正文(在这种情况下它应该是'notmodified'。这不太可能有用。

答案 1 :(得分:2)

根据this,textStatus的可能值为:

"timeout"
"error"
"notmodified"
"success"
"parsererror"

我相信如果您在success回调中,您将只看到"success" textStatus。不确定为什么会看到undefined

XMLHttpRequest包含您通常不需要的较低级别信息,例如用于发出Ajax请求的响应状态和参数。通常你所关心的只是data参数,它是从XMLHttpRequest对象本身派生的。您可以在this页面找到XMLHttpRequest的其余方法和属性。

答案 2 :(得分:1)

testStatus引用了AJAX readyStates,您可以阅读here。我不太清楚为什么它会像未定义的那样发生。我不是100%习惯使用jQuery的AJAX,但是在手工制作的ajax调用期间,你的返回函数将被调用多次,状态代码不同。

XMLHttpRequest为您提供了进行异步调用的实际对象。