You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决jQuery Ajax成功回调中无法根据状态码显示提示的问题

问题原因分析

你代码的核心错误是混淆了接口返回的业务数据与HTTP响应状态:

  • jQuery的success回调仅会在HTTP响应状态码为2xx(含200)时触发,能进入这个函数就已经说明请求成功、状态码是200。
  • 你判断的response.status是接口返回的JSON数据字段,但https://jsonplaceholder.typicode.com/todos/1返回的todo对象里并没有status属性(可查看console.log输出的内容,只有userId、id、title、completed字段),因此这个条件永远不成立,alert无法触发。
修正后的代码

JavaScript 部分

$("#check").click(function() {
  $.ajax({
    url: 'https://jsonplaceholder.typicode.com/todos/1',
    method: 'GET',
    dataType: 'json',
    success: function(response) {
      console.log(response);
      // 进入success回调即代表HTTP状态码为200,直接触发提示
      alert('getting into success');
    },
    error: function(err) {
      alert('请求失败:' + err.statusText);
    }
  })
})

HTML 部分(无需修改)

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://code.jquery.com/jquery-3.6.4.js" integrity="sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E=" crossorigin="anonymous"></script>
</head>

<body>
  <button id="check" value="check">Check</button>
</body>
</html>
补充说明

如果确实需要在success回调中获取HTTP响应状态码,可以使用回调的第三个参数(jqXHR对象):

success: function(response, textStatus, jqXHR) {
  console.log('HTTP状态码:', jqXHR.status); // 此处会输出200
  alert('getting into success');
}

内容的提问来源于stack exchange,提问作者Chinni Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:10:20