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

在Ajax回调中删除表格行,但Ajax无法越过readyState 1状态

解决Ajax停留在readyState 1且无法删除表格行的问题

嘿,我来帮你排查这个问题!你遇到的核心问题是你的Ajax请求根本没真正发出去,所以才会卡在readyState 1(这个状态表示请求已初始化但还未发送),自然success里的删除行代码永远不会执行。

问题出在哪?

你写的$.ajax代码只加了success回调,但缺少了最关键的请求配置:比如url(要请求的后端接口地址)、type(请求方式,比如POST/GET)这些必要参数。jQuery的$.ajax在没有这些核心配置时,不会发起实际的HTTP请求,请求停留在初始化阶段,也就永远到不了触发success的状态。

两种解决方案

根据你的实际需求选一种:

1. 不需要Ajax,直接删除行

如果你的删除操作不需要和后端交互,只是前端页面上的移除,那完全不需要Ajax,直接执行删除即可:

var element = $('table:nth-child(5)>tbody>tr:nth-child(5)');
element.remove(); // 直接移除目标行

2. 需要先调用后端接口再删除行

如果必须先通过Ajax通知后端删除数据,再更新前端,那要补全Ajax的必要配置:

var element = $('table:nth-child(5)>tbody>tr:nth-child(5)');
$.ajax({
  url: '/api/delete-row', // 替换成你实际的后端接口地址
  type: 'POST', // 或者DELETE/GET,根据后端接口要求
  data: { rowId: '要删除的行ID' }, // 传给后端的参数,按需添加
  success: function() {
    element.remove(); // 接口请求成功后,再删除前端的行
  },
  error: function(xhr) {
    console.error('删除请求失败:', xhr.responseText); // 处理请求失败的情况,比如提示用户
  }
});

补充说明

当Ajax请求正确配置后,它会依次经历readyState的各个阶段:1(初始化)→2(收到响应头)→3(接收响应体)→4(请求完成),此时才会根据响应状态码触发success或error回调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:19:49