我一直在网上(显然是在错误的地方)寻找 ajax(jquery post)目的的成功和失败标准。
例如,假设我正在使用 ajax 发布到 php 脚本。该脚本可以返回:
- 0 号导出
- 导出 1
- 杰森数组
- 返回
- 等...
这些返回值何时会转化为成功,何时会转化为失败?
您可能已经知道 $.ajax() 支持 beforeSend、success、error 和 complete 回调。
那么我的脚本应该在成功和失败的情况下发送什么来触发适当的回调。
最佳答案
Ben 是对的,但我会扩展一点。
jQuery 根据被调用页面的 HTTP 响应代码来确定成功或失败。请注意,这不与发回的响应中的内容相同。
例如,假设您的 PHP 脚本位于 http://url.com/script.php。
当用户访问该站点时,他们将从服务器获得响应。该响应可以是 JSON 对象,可以是 HTML 页面,也可以是空响应。 在所有这些情况下,响应代码可能是 200。200 响应代码意味着服务器理解请求、接受请求并发回一些内容。
现在假设用户试图点击 http://url.com/notascript.php
服务器不知道如何处理它(假设 notascript.php
实际上不存在)。它使请求失败,并发回响应——可能带有响应代码 404(或 4xx 范围内的其他代码)。
因此,如果您知道实际的 URL,那么 jQuery 的错误处理程序是如何被调用的呢?
好吧,假设您的 AJAX 调用正在尝试加载博客文章,并尝试进行如下调用:http://url.com/post?id=5
。如果您的 PHP 脚本确定不存在 ID 为 5 的博客条目,那么您可能不应该发回成功的响应。相反,4xx 响应会更合适。 PHP 有一个内置函数:
<?php
http_response_code(404);
?>
现在,响应将被 jQuery 读取为失败,并调用错误处理程序。
进一步阅读:
RFC2616 ,它定义了 HTTP 响应代码
关于php - ajax(jquery post)目的的成功和失败标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15167281/