AJAX XMLHttpRequest對象詳解
AJAX是一種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術,是異步Javascript和XML的集合。其核心是XMLHttpRequest對象,可以在不向服務器端提交整個頁面的情況下,實現(xiàn)局部更新網(wǎng)頁,它是AJAX的Web應用程序架構(gòu)的一項關鍵技術。
基本屬性:
基本方法:
XMLHttpRequest五步法:
第一:創(chuàng)建XMLHttpRequest對象
第二:注冊回調(diào)函數(shù)
第三:設置和服務器交互的參數(shù)
第四:設置向服務器端發(fā)送的數(shù)據(jù),啟動和服務器端的交互
第五:判斷和服務器端的交互是否完成,還有判斷服務器端是否返回正確的數(shù)據(jù)
HTML代碼:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript" > var xmlhttp; function submit() { //1、創(chuàng)建XMLHttpRequest對象 if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMineType) {//針對某些特定版本的mozillar瀏覽器的BUG進行修正 //將覆蓋發(fā)送給服務器的頭部,強制 text/xml 作為 mime-type xmlhttp.overrideMineType("text/xml"); } } else if (window.ActiveXObject) {//針對IE瀏覽器進行處理 var activexName = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Miscrosoft XMLHTTP"]; for (var i = 0; i < activexName.length; i++) { try{ xmlhttp=new ActiveXObject(activexName[i]); break; } catch (e) { } } } if (xmlhttp == undefined || xmlhttp == null) { alert("當前瀏覽器不支持插件XMLHttpRequest對象,請更換瀏覽器"); return; } //2、注冊回調(diào)函數(shù) xmlhttp.onreadystatechange = callback; //獲取當前值 var username = document.getElementById("userName").value; //設置字符串參數(shù),并進行編碼(用于POST提交方式) var args = "username=" + encodeURIComponent(username); //GET 交互 //3、設置和服務器端交互的參數(shù) //xmlhttp.open("GET", "XMLHttpRequest.aspx?username=" + username, true); //POST交互 //3、設置和服務器端交互的參數(shù) //使用Post方式不用擔心緩存 xmlhttp.open("POST", "XMLHttpRequest.aspx?username=" + username, true); //設置Content-Type類型,告知服務器實體中有參數(shù) xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //4、設置向服務器端發(fā)送的數(shù)據(jù),啟動和服務器端的交互 //用于GET提交 //xmlhttp.send(null); //用于POST提交 xmlhttp.send(args); function callback() { //5、判斷和服務器端的交互是否完成,還有判斷服務器端是否正確返回了數(shù)據(jù) if (xmlhttp.readyState == 4) {//readyState=4表示交互完成 if (xmlhttp.status == 200) {//status=200表示正確返回了數(shù)據(jù) //純文本數(shù)據(jù)的接收方法 var message = xmlhttp.responseText; var div = document.getElementById("message"); div.innerHTML = message; } } } } </script> </head> <body> <input type="text" id="userName" /> <input type="button" value="用戶名校驗" onclick="submit()" /> <br /> <div id="message"></div> </body> </html>
aspx中的代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace XMLHttpRequest五步法 { public partial class XMLHttpRequest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Response.Clear(); //獲取當前值,get提交使用Request.QueryString方法 //string username = Request.QueryString["username"]; //POST提交,使用Request.Form string username = Request.Form["username"]; Response.Write("姓名:'" + username + "'<br/>時間:'" + DateTime.Now.ToString() + "'"); Response.End(); } } }
總結(jié):
XMLHttpRequest是AJAX的核心部分,需要好好理解。剛開始接觸的時候,有些不明白是怎么回事,而且視頻中講的也是原生的AJAX,表面上看來不太好理解,但是通過具體的demo實踐,就會發(fā)現(xiàn)其實這個挺容易理解的。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。
- jQuery 利用$.ajax 時獲取原生XMLHttpRequest 對象的方法
- 解析ajax核心XMLHTTPRequest對象的創(chuàng)建與瀏覽器的兼容問題
- 如何用ajax來創(chuàng)建一個XMLHttpRequest對象
- jquery ajax學習筆記2 使用XMLHttpRequest對象的responseXML
- AJAX中同時發(fā)送多個請求XMLHttpRequest對象處理方法
- AJAX客戶端說明,XMLHttpRequest對象
- AJax 學習筆記一(XMLHTTPRequest對象)
- ajax 入門基礎之 XMLHttpRequest對象總結(jié)
- AJAX XMLHttpRequest對象創(chuàng)建使用詳解
相關文章
通過數(shù)據(jù)庫和ajax方法寫出地圖的實例代碼
AJAX 是與服務器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術,在不重新加載整個頁面的情況下。這篇文章主要介紹了通過數(shù)據(jù)庫和ajax方法寫出地圖的實例代碼的相關資料,需要的朋友可以參考下2016-10-10IE下jquery ajax無法獲得最新數(shù)據(jù)的問題解決(IE緩存)
利用ajax查詢數(shù)據(jù),在谷歌瀏覽器下可以獲取到最新數(shù)據(jù),而在IE中獲得是舊數(shù)據(jù),無法獲得最新的數(shù)據(jù),經(jīng)查資料,才發(fā)現(xiàn)時IE緩存再作怪2013-08-08jQuery Validator驗證Ajax提交表單的方法和Ajax傳參的方法
這篇文章主要介紹了jQuery Validator驗證Ajax提交表單的方法和Ajax傳參的方法,在文中還給大家提到了jquery .ajax提交表單的寫法,具體實例代碼大家參考下本文2017-08-08Ajax返回數(shù)據(jù)之前的loading等待效果
我們通過ajax請求,向后臺傳遞參數(shù),然后后臺經(jīng)過一系列的運算之后向前臺返還數(shù)據(jù),我希望在等待數(shù)據(jù)成功返還之前可以展示一個loading.gif圖。接下來通過本文給大家分享Ajax返回數(shù)據(jù)之前的loading等待效果,需要的朋友可以參考下2017-08-08ajax讀取數(shù)據(jù)庫內(nèi)容實現(xiàn)二級聯(lián)動下拉選擇菜單示例
本文為大家介紹下使用ajax技術讀取數(shù)據(jù)庫內(nèi)容并生成二級聯(lián)動下拉選擇菜單,具體實現(xiàn)如下,感興趣的朋友可以參考下,希望對大家有所幫助2013-07-07ajax提交到servelt獲取參數(shù)有亂碼的解決方法
這篇文章主要介紹了ajax提交到servelt獲取參數(shù)有亂碼的解決方法,需要的朋友可以參考下2014-02-02