首頁  >  文章  >  後端開發  >  ajax跨域請求下parsererror的錯誤解決方法

ajax跨域請求下parsererror的錯誤解決方法

小云云
小云云原創
2018-01-08 13:23:534532瀏覽

本文主要為大家帶來一篇完美解決ajax跨域請求下parsererror的錯誤。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

ajax請求報parsererror錯誤是很寬泛的概念,很多情況下都報這個錯誤,

在很多時候,即使ajax提交、返回都正常

#XMLHttpRequest.status=200  (正常回應)

XMLHttpRequest.readyState=4 (正常接收)

#ajax也會提示一個parseerror的錯誤.

出現這個錯誤,大都是不良書寫習慣,或語法不當造成的.

關於ajax的錯誤,請使用:

error:function(XMLHttpRequest, textStatus, errorThrown){
   $("p").html(textStatus);
   $("p").append("<br/>"XMLHttpRequest.status);
   $("p").append("<br/>"XMLHttpRequest.readyState);
   $("p").append("<br/>"XMLHttpRequest.responseText);
}

或:

$("p").ajaxError(function(event,request, settings){
   $(this).append("<li>出错页面:" + settings.url + "</li>");
});

取得錯誤相關資訊,以進行分析.

textStatus回傳除了得到null,"timeout", "error", "notmodified" 和"parsererror"。

XMLHttpRequest物件可以使用status,readyState,responseText等屬性取得HTTP程式碼,處理狀態和伺服器傳回的文字內容.

##在使用ajax,以及相關應用程式開發過程中,一定要按標準寫程式,可以減少出錯的機率.


這個標準包括語法,資料格式,標點符號等.

ajax跨請求中,如果data為空,請使用;


data:"{}",

ajax處理伺服器返回Json格式資料時,如果採用$.parseJSON()方式,

那麼伺服器傳回的Json資料格式,一定以標準Json格式書寫,


對字元而言必須用雙引號代替單引號包圍,數值,布林類型,null不用,


#這點主要在一些舊的jquery版本上發生單引號,雙引號的不同而出現錯誤提示.

ajax跨域請求(jsonp)中,服務端返回資料格式必須是:


myCallbackFunction({"id":1,"name":"C#","is_familiar":true});


請注意這個函數最後的分號";",必須加上,


否則,如果同一個頁面有多個ajax請求,並且在資料沒有返回時,再發出其它ajax請求時,


#有可能出現parsererror出錯提示.

這種錯誤很隱敝,在開發時,不容易發現,在並發測試時,就很容易暴露出.

相關推薦:

Ajax跨網域存取Cookie遺失問題的解決方法_AJAX相關

#JS實作Ajax跨網域請求flask回應內容

#實例詳解Ajax跨域請求的原理

以上是ajax跨域請求下parsererror的錯誤解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn