簡體   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