中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript中Ajax跨域的方法

發布時間:2022-03-03 10:38:32 來源:億速云 閱讀:117 作者:iii 欄目:web開發

本篇內容主要講解“javascript中Ajax跨域的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“javascript中Ajax跨域的方法”吧!

ajax技術能夠向服務器請求額外的數據而無須卸載頁面,會帶來更好的用戶體驗。

XMLHttpRequest 對象

Ajax 技術的核心是 XMLHttpRequest 對象(簡稱 XHR )

創建 XHR 對象

var xhr = new XMLHttpRequest();

XHR的用法 

要調用的第一個方法是 open() ,它接受 3 個參數:要發送的請求的類型("get" 、 "post" 等)、請求的 URL 和表示是否異步發送請求的布爾值。

xhr.open("get", "example.php", false);

xhr.send(null);

這里的 send() 方法接收一個參數,即要作為請求主體發送的數據。如果不需要通過請求主體發送數據,則必須傳入 null ,因為這個參數對有些瀏覽器來說是必需的。調用 send() 之后,請求就會被分派到服務器。

在收到響應后,響應的數據會自動填充 XHR 對象的屬性,相關的屬性簡介如下。

responseText:作為響應主體被返回的文本。

responseXML:如果響應的內容類型是"text/xml"或"application/xml",這個屬性中將保存包含著響應數據的 XML DOM 文檔。

status:響應的 HTTP 狀態。

statusText:HTTP 狀態的說明。

xhr.open("get", "example.txt", false); 

xhr.send(null); 

if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ 

 alert(xhr.responseText); 

} else { 

 alert("Request was unsuccessful: " + xhr.status); 

}

像前面這樣發送同步請求當然沒有問題,但多數情況下,我們還是要發送異步請求,才能讓 JavaScript 繼續執行而不必等待響應。此時,可以檢測 XHR 對象的 readyState 屬性,該屬性表示請求/響應過程的當前活動階段。這個屬性可取的值如下。

0:未初始化。尚未調用 open()方法。

1:啟動。已經調用 open()方法,但尚未調用 send()方法。

2:發送。已經調用 send()方法,但尚未接收到響應。

3:接收。已經接收到部分響應數據。

4:完成。已經接收到全部響應數據,而且已經可以在客戶端使用了。

var xhr = createXHR(); 

xhr.onreadystatechange = function(){ 

 if (xhr.readyState == 4){ 

 if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ 

 alert(xhr.responseText); 

 } else { 

 alert("Request was unsuccessful: " + xhr.status); 

 } 

 } 

}; 

xhr.open("get", "example.txt", true); 

xhr.send(null);

function createXHR(){ 

 if (typeof XMLHttpRequest != "undefined"){ 

 return new XMLHttpRequest(); 

 } else if (typeof ActiveXObject != "undefined"){ 

 if (typeof arguments.callee.activeXString != "string"){ 

 var versions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", 

 "MSXML2.XMLHttp"], 

 i, len; 

 for (i=0,len=versions.length; i < len; i++){ 

 try { 

 new ActiveXObject(versions[i]); 

 arguments.callee.activeXString = versions[i]; 

 break; 

 } catch (ex){ 

 //跳過

 } 

 } 

 } 

 return new ActiveXObject(arguments.callee.activeXString); 

 } else { 

 throw new Error("No XHR object available."); 

 } 

}

到此,相信大家對“javascript中Ajax跨域的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節
推薦閱讀:
  1. ajax跨域之jsonp
  2. ajax跨域

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舒城县| 抚宁县| 松原市| 烟台市| 揭西县| 山阴县| 钟山县| 安新县| 恩施市| 太和县| 锦屏县| 阿巴嘎旗| 怀远县| 晋宁县| 睢宁县| 秭归县| 偏关县| 长海县| 响水县| 泉州市| 星子县| 许昌市| 衢州市| 克山县| 怀安县| 会宁县| 宣化县| 大埔县| 湖州市| 墨竹工卡县| 镇远县| 南昌市| 波密县| 永修县| 嵩明县| 常山县| 鲁甸县| 洛南县| 襄汾县| 霍邱县| 柳江县|