簡體   English   中英

ajax請求返回4xx時如何獲取數據responseJSON?

[英]How to get data responseJSON when ajax request returns 4xx?

我有這個Ajax請求

    $.ajax({
        url: 'Default.aspx/CreateNewCase',
        data: JSON.stringify(
            {id: ID }
        ),
        dataType: "json",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        success: function (data, status) {
            //when server returns 200
            loadCase(ID, data);
        },
        error: function (data) {
            //when server returns 4xx. For example 409
            if(data.status == "409")
            {
                var newData = data.responseJSON;
                //error newData is undefined
                loadCase(ID, newData);
            }
        }
    });
    }

無論結果是200還是4xx,我的WebMethod都會始終返回一個對象。 在ajax.success上,它返回一個JSON對象數據。 但是在ajax.error上,我無法獲取data.responseJSON。

我讀過某個地方,JQuery阻止在發生錯誤后讀取數據。 我也嘗試使用.fail和.complete,但是當Ajax請求返回4xx時,我仍然無法獲取該值。

我該如何解決?

所以我終於找到了答案。 我必須在web.config的<system.webServer>添加此參數:

  <system.webServer>
    <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
      <clear/>
    </httpErrors>
  </system.webServer>

然后,您可以像這樣訪問數據:

error: function (data, status) {
       if (data.status == "409") {
             var myData = data.responseJSON;

             //do stuff here
       }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM