代码之家  ›  专栏  ›  技术社区  ›  Jay Corbett

jquery ajax success选项中返回的参数是什么?

  •  2
  • Jay Corbett  · 技术社区  · 16 年前

    JQuery documentation 指示返回以下内容:

    成功(数据,文本状态, xmlhttpRequest)函数

    如果请求 成功了。函数被传递 三个参数:返回的数据 来自服务器,格式根据 到“datatype”参数;字符串 描述状态;以及 XMLHttpRequest对象。这是阿贾克斯 事件。

    我只使用了“data”参数。 “textstatus”的目的是什么?…当我将这个var放入一个警报(在success函数中)时,我会得到“未定义的”。 我可以从xmlhttpRequest中得到什么?如何访问它?

    谢谢

    3 回复  |  直到 16 年前
        1
  •  2
  •   bobince    16 年前

    你可以用 XMLHttpRequest 对象以获取任何 response headers 服务器已发送。对于您所控制的服务来说,这是有限的有用性,因为通常最好将响应主体的JSON或XML中的所有信息传递回,但是对于与那些您没有控制权的接口(这些接口将有用信息放在头中)进行对话时,这可能很有用。

    这个 textStatus 可以用于错误回调,以告诉您请求的范围。但如果成功,它只会告诉您服务器是否返回了 200 OK 回答(在这种情况下,你应该 'success' )或者你是否有 304 Not Modified 而从浏览器缓存返回的主体(在这种情况下应该是 'notmodified' . 这不太可能有用。

        2
  •  2
  •   Jonathon Faust    16 年前

    根据 this ,textStatus的可能值为:

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

    我相信如果你在 success 回拨,您将只看到 "success" 文本状态。不知道你为什么会看到 undefined .

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

        3
  •  1
  •   Nick Larsen    16 年前

    teststatus引用了Ajax readystates,您可以阅读 here . 我不太清楚为什么它会被认为是未定义的。我并不完全习惯jquery中的ajax,但是在手工创建的ajax调用期间,您的返回函数将被多次调用,状态代码也会有所不同。

    xmlhttpRequest返回进行异步调用的实际对象。