php - ajax(jquery post)目的的成功和失败标准

标签 php ajax

我一直在网上(显然是在错误的地方)寻找 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 读取为失败,并调用错误处理程序。

进一步阅读:

http_response_code() function

RFC2616 ,它定义了 HTTP 响应代码

REST

关于php - ajax(jquery post)目的的成功和失败标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15167281/

相关文章:

php - 如何将 Node.js 服务器连接到 Apache 服务器?

php - 将 Base64 jpeg 图像传递给 og :image

javascript - 如何在更改事件时更改下拉列表的值?

javascript - ajax 调用成功但没有返回数据

php - ajax代码不工作

php - Grocery CRUD 回调函数如何工作?

javascript - .get 的 jquery if/else 语句不起作用

php - 在 Woocommerce 中将产品类别转换为产品属性

javascript - 推特 OAuth1.0A Javascript 错误

javascript - Angular 2 : How to access an HTTP response body?