jQuery $.post();

3
我有一个关于jQuery中$.post()的问题。一般语法如下:
jQuery.post( url, [ data ], [ success(data, textStatus, XMLHttpRequest) ], [ dataType ] );

如果可能的话,我希望有人能够解释一下data和textStatus是什么,同时提供一个例子。

谢谢!


好问题...我知道data指的是(字面上)通过AJAX页面传回来的数据,但不知道textStatus的含义。 - Tarka
textStatus是从服务器返回的状态。 - Yves M.
如果我要猜测 textStatus,我会说它是HTTP响应中返回的文本状态(“OK”或“Bad Request”)。 - KLee1
数据是回显的变量吗? - Anant
@Anant,你在PHP中输出什么就会得到什么(所以你要么使用print,要么使用echo输出一些内容——可以是json、XML或HTML)。你的工作是告诉jQuery你期望得到什么。如果你期望得到json,它将解析为json(如果不是有效的json,则会出错)。你还可以告诉jQuery你期望得到XML或HTML,它将相应地处理。 - Vivin Paliath
显示剩余2条评论
3个回答

2
“data”是从服务器返回的响应。它取决于您指定的“dataType”。如果将“json”作为“dataType”参数的参数,则jQuery将解释从服务器接收到的数据为“json”。
“textStatus”会提供有关响应的信息,例如它是否成功或发生了什么错误。可能的值包括:
- success - error - notmodified - timeout - parsererror 如果调用了您的“success”处理程序,则“textStatus”的值很可能是“success”。
如果数据类型不符合预期,你将会得到一个“解析错误”(parsererror)。例如,如果你指定了dataTypejson,但服务器返回的是XML格式,你就会得到一个“解析错误”,并且你的error处理程序将被调用。

有没有描述这个的链接?我在 JQuery 文档中找不到任何相关内容。 - KLee1
@KLee1 噢 - 忘记链接到源代码了。我已经编辑了我的回答。我假设你是在谈论 textStatus - Vivin Paliath

1
根据http://api.jquery.com/jQuery.post/,评论是正确的。
成功回调函数将传递返回的数据,这将是一个XML根元素或文本字符串,具体取决于响应的MIME类型。它还会传递响应的文本状态。

0

这个链接不处理 post 函数中的参数,只处理 post 本身。 - KLee1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接