繁体   English   中英

检查 Axios promise 捕获块 VueJs 中的 HTTP 状态代码

[英]Check HTTP status code in the Axios promise catch block VueJs

VueJS 的新手。 我有以下代码使用 axios 从 Controller 检索数据:

SubmitForm: function () {
    axios({
      method: 'post',
      url: '/Home/SubmitedForm',
      data: { "Fields": this.$data }
    }).then(res => {
      alert('Successfully submitted the form ');
      window.close();
      }).catch(err => {
        if (err.response.status == 409) {
          alert(`Already exists. See details: ${err}`)
        }
        else {
          alert(`There was an error submitting your form. See details: ${err}`)
        }

    });

当 Controller 方法 SubmittedForm 返回 409 时,我想抛出一个特定的警报,否则只抛出一个通用的警报。 基于此页面:https://gist.github.com/fgilio/230ccd514e9381fafa51608fcf137253我写了上面的代码。 但是,即使返回的 http 状态为 409,它仍然显示一般警报。 我很确定我在这里缺少一些理解。 有人可以帮我找出我在这里做错了什么吗? 在 localhost 上按预期工作,但在 azurewebsites 上发布后,它再次显示一般错误。

也许您的 API 端点制动 CORS 策略,然后您无法读取此类错误的状态(尽管它在开发工具的“网络”选项卡中可见)。

你可以安装一个浏览器扩展,比如“CORS无处不在”来测试它是否可以工作,但是任何被 CORS 阻止的对 API 的调用都会默认在浏览器的控制台中显示警告/错误。

可能是因为 err.response.status 是一个字符串,而您正在与数字进行比较

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM