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

根据状态码展示错误信息时仅控制台输出、客户端不显示问题求助

问题根因

你的状态码判断逻辑存在运算符优先级错误:

  • !res.status === 200 会优先执行!res.status运算,只要res.status是不为0的数值,运算结果都是false,最终false === 200永远不成立,错误分支永远不会触发,所以就算接口返回非200状态码也不会弹出错误提示。

修复方法

把判断条件改为res.status !== 200即可,同时建议补充请求异常捕获逻辑,避免网络错误、请求超时等场景没有提示:

const submitFormData = (evt) => {
  evt.preventDefault()
  Swal.fire({
    title: '确认要发布岗位吗?',
    text: "发布后无法撤销!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: '确认发布'
  }).then(async (result) => {
    if (result.isConfirmed) {
      try {
        const res = await companyJobPost(input)
        console.log("响应结果", res)
        // 修正状态码判断逻辑
        if (res.status !== 200) {
          alert("岗位ID必须唯一")
          return
        }
        alert("岗位发布成功")
      } catch (err) {
        // 捕获请求异常
        console.error("请求出错:", err)
        alert("请求失败,请稍后重试")
      }
    }
  })
}

如果你的业务错误是在接口返回200状态码的前提下,通过响应体data里的字段标识的,还可以补充对应业务逻辑判断:

if (res.status !== 200 || res.data?.error) {
  alert(res.data?.errorMsg || "岗位ID必须唯一")
  return
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:36:02