首頁  >  文章  >  web前端  >  ajax中error什麼時候使用

ajax中error什麼時候使用

WBOY
WBOY原創
2021-12-23 17:17:362209瀏覽

error使用情況:1、當後台傳回的dataType類型和前台寫的不一致時使用;2、當async請求同步非同步問題時使用;3、當data設定為空時使用;4、當傳遞的參數不是ajax支援的編碼格式時使用。

ajax中error什麼時候使用

本文操作環境:windows7系統、javascript1.8.5&&html5版、Dell G3電腦。

ajax中error在什麼時候使用

  • #dataType錯誤(dataType用來指定後台回傳參數的類型)

類型錯誤:後台傳回的dataType類型和前台寫的不一致會跳入error。

格式錯誤:jquery1.4之後對json的格式要求非常嚴格,json格式錯誤也會跳入error.{“test”:1} 注意格式

有時,在不需要傳回值的情況下,丟按範本格式,設定了dataType:”json”,參數;這時候,ajax傳值正確時,出現200回傳成功狀態下報錯的特殊情況。

如果沒有指定,jQuery 會自動根據 HTTP 套件 MIME 資訊來智慧判斷,例如 XML MIME 類型就被辨識為 XML。在 1.4 中,JSON 就會產生一個 JavaScript 對象,而 script 則會執行這個腳本。隨後伺服器端傳回的資料會根據這個值解析後,傳遞給回呼函數。可用值:

「xml」: 傳回 XML 文檔,可用 jQuery 處理。

「html」: 傳回純文字 HTML 資訊;包含的 script 標籤會在插入 dom 時執行。

「script」: 傳回純文字 JavaScript 程式碼。不會自動快取結果。除非設定了 “cache” 參數。注意:在遠端請求時(不在同一個網域下),所有 POST 請求都會轉為 GET 請求。 (因為將使用 DOM 的 script標籤來載入)

“json”: 返回 JSON 資料 。

“jsonp”: JSONP 格式。使用 JSONP 形式呼叫函數時,如 “myurl?callback=?” jQuery 將自動取代 ? 為正確的函式名,以執行回呼函數。

“text”: 傳回純文字字串

  • async請求同步非同步問題

async預設是true(非同步請求),如果想一個Ajax執行完後再執行另一個Ajax, 需要把async=false

例如,你用post請求傳值到另一個頁面後台,但是頁面一載入你的ajax就已經執行過了,傳值接收是在後台才完成的,這時候就請求不到數據,所以可以考慮把ajax請求改為同步試試。

  • data不能不寫

data為空也一定要傳」{}」;不然回傳的是xml格式的。並提示parsererror. data:”{}”

parsererror的異常和Header 類型也有關係。及編碼header('Content-type: text/html; charset=utf8');

  • #傳遞的參數

必須是ajax支援的編碼格式

  • URL路徑問題

路徑不能有中文

一般我們可以透過分析error中的一些參數來進行錯誤原因的判斷:

XMLHttpRequest.readyState: 狀態碼

0 - (未初始化)還沒有呼叫send()方法

1 - (載入)已呼叫send()方法,正在傳送請求

2 -(載入完成)send()方法執行完成,並且已經接收到全部回應內容

#3 -(互動)正在解析回應內容

##4 -(完成)回應內容解析完成,可以在客戶端呼叫了

XMLHttpRequest.status:呼叫 http請求狀態

請求狀態很多,具體遇到錯誤狀態代碼可以自行百度查詢。

XMLHttpRequest.responseText:傳回的錯誤訊息

如果發生了錯誤,錯誤訊息(第二個參數)除了得到null之外,還可能是」timeout”, “error”, “notmodified” 和“parsererror”。

【相關教學推薦:

AJAX影片教學

以上是ajax中error什麼時候使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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