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

Insomnia调用接口正常但浏览器返回204(cancelled)无法获取200响应

问题根因

你前端代码中,触发提交的按钮设置了type="submit",且放在<form>标签内部。点击按钮时会首先触发浏览器原生的表单默认提交行为,触发页面重载/跳转,此时你发起的axios异步请求还未接收响应就被强制取消,所以网络面板会显示cancelled状态。由于请求已经成功发送到服务端,所以数据库会正常写入测试数据。

解决方案

提供两种可行方案,任选其一即可:

方案1:阻止表单默认提交行为

在提交触发函数中新增事件阻止逻辑,更推荐使用表单的onSubmit事件绑定提交逻辑,符合前端表单操作规范:

  1. 调整提交函数,新增阻止默认行为的逻辑:
let addUser = (e) => {
  // 新增该行阻止表单默认提交
  e.preventDefault();
  axios
    .post(`http://localhost:3000/users/signup`, {
      firstName: "testFirstName",
      lastName: "testLastName",
      email: "testEmail@gmail.com",
      password: "testPassword",
    })
    .then((res) => {
      console.log(res);
      console.log(res.data);
    })
    .catch((e) => {
      console.log(e);
    });
};
  1. 将提交逻辑绑定到form的onSubmit事件上,无需单独给按钮绑定点击事件:
return (
  <form onSubmit={addUser}>
    ... 
    <button type="submit">submit</button>
    ...
  </form>
);

方案2:修改按钮类型

直接将提交按钮的type改为button,该类型的按钮放在form内部不会触发默认提交行为:

<button type="button" onClick={addUser}>submit</button>

额外注意事项

服务端返回的成功提示拼写有误:Succcessfully多写了一个c,如果需要和你预期的返回字符串完全一致,可以手动调整修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:07