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

问题描述 投票:0回答:2

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上可以按预期工作,但是在azure网站上发布后,它再次显示一般错误。

javascript vue.js axios http-status-codes
2个回答
1
投票

也许您的API端点阻止了CORS策略,然后您无法读取此类错误的状态(尽管该错误在开发工具的“网络”标签中可见)。

您可以安装一个浏览器扩展,例如“ CORS Anywhere”,以测试其是否正常运行,但是默认情况下,对CORS阻止的API的任何调用都会在浏览器的控制台中显示警告/错误。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.