XMLHttpRequest abort()
XMLHttpRequest abort() 方法可以中止已經傳送的 HTTP 請求。
呼叫此方法後,AJAX 請求會有如下狀態變化:
(1).readyState 屬性值變為 0。
(2).status 屬性值變為 0。
(3).abort 事件觸發。
特別說明:中斷 AJAX 請求屬正常行為,不屬於發生錯誤。
關於 XMLHttpRequest 更多內容參閱 XMLHttpRequest 物件一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼xhr.abort()
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta name="author" content="https://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let loadXMLDoc = ()=> { let xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { document.getElementById("show").innerHTML = xmlHttp.responseText; } } xmlHttp.open("GET", "demo/ajax/async.php?webName=antzone", true); xmlHttp.send(); setTimeout(function () { xmlHttp.abort(); console.log(xmlHttp.readyState); console.log(xmlHttp.status); }, 5000); xmlHttp.onabort = ()=>{ console.log("abort事件"); } } window.onload = ()=> { let oBt = document.getElementById("bt"); oBt.onclick = ()=> { loadXMLDoc(); } } </script> </head> <body> <div> <div id="show"></div> <input id="bt" type="button" value="檢視效果"/> </div> </body> </html>
伺服器端 PHP 程式碼如下:
[PHP] 純文字檢視 複製程式碼<?php time_sleep_until(time() + 10); echo $_GET["webName"]; ?>
上述程式碼演示了 abort() 方法的功能,以及 AJAX 請求狀態的一些變化。
程式碼分析如下:
(1).伺服器端會延遲 10 秒向客戶端傳送響應資料。
(2).通過定時器函式,5 秒後呼叫 abort() 方法中斷 HTTP 請求。
(3).中斷後,AJAX 請求狀態發生了一些變化,可以在谷歌開發者工具檢視列印資料。
相關文章
- XMLHttpRequest abort 事件XMLHTTP事件
- XMLHttpRequestXMLHTTP
- JavaScript abort事件JavaScript事件
- FileReader abort 事件事件
- XMLHttpRequest send()XMLHTTP
- XMLHttpRequest overrideMimeType()XMLHTTPIDE
- XMLHttpRequest open()XMLHTTP
- XMLHttpRequest getResponseHeader()XMLHTTPHeader
- XMLHttpRequest getAllResponseHeaders()XMLHTTPHeader
- XMLHttpRequest setRequestHeader()XMLHTTPHeader
- XMLHttpRequest readyStateXMLHTTP
- 3.3.5 使用Abort模式模式
- Fetch 實現 abort
- XMLHttpRequest onreadystatechange事件XMLHTTP事件
- XMLHttpRequest 物件概述XMLHTTP物件
- XMLHttpRequest responseText屬性XMLHTTP
- ajax建立XMLHttpRequest物件XMLHTTP物件
- AJAX 建立 XMLHttpRequest物件XMLHTTP物件
- XMLHttpRequest withCredentials 屬性XMLHTTP
- XMLHttpRequest timeout 屬性XMLHTTP
- XMLHttpRequest responseText 屬性XMLHTTP
- 用whistle實現Abort請求
- thread.Interrupt()與thread.Abort()thread
- XMLHttpRequest readyState響應狀態XMLHTTP
- JavaScript 複習之 XMLHttpRequest 物件JavaScriptXMLHTTP物件
- [轉帖]XACT_ABORT 的問題
- springboot 解決跨域 Access to XMLHttpRequest atSpring Boot跨域XMLHTTP
- iOS Abort問題系統性解決方案iOS
- 詳解XMLHttpRequest的跨域資源共享XMLHTTP跨域
- Ajax 之戰:XMLHttpRequest與Fetch API比較XMLHTTPAPI
- 程式流程的控制 Abort Exit Halt RunError Continue Break SleepError
- Ajax 跨域請求 Access to XMLHttpRequest 解決方案跨域XMLHTTP
- http request-01-XMLHttpRequest XHR 簡單介紹HTTPXML
- 根據JavaScript中原生的XMLHttpRequest實現jQuery的AjaxJavaScriptXMLHTTPjQuery
- NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load xxxx錯誤解決方法ErrorAIXMLHTTP
- Element頁面內多個上傳元件 超時使用abort取消請求元件
- Runtime PM 處理不當導致的 external abort on non-linefetch 案例分享
- 有了XMLHttpRequest,前後端們終於過上了幸福的生活XMLHTTP後端