ajax跨域請求下parsererror錯誤

來源:互聯網
上載者:User

ajax請求報parsererror錯誤是很寬泛的概念,很多情況下都報這個錯,
在很多時候,即使ajax提交、返回都正常
XMLHttpRequest.status=200  (正常響應)
XMLHttpRequest.readyState=4 (正常接收)
ajax也會提示一個parseerror的錯誤.

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

關於ajax的錯誤,請使用:

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

或:

$("div").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出錯提示.
這種錯誤很隱敝,在開發時,不容易發現,在並發測試時,就很容易暴露出.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.