ajax詳解及例子
首先建立瀏覽器物件(因瀏覽器的不同,可使用ActiveXObject和XMLHttpRequest判斷當前所使用的瀏覽器)
var xmlHttp;
if(window.ActiveXObject) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
當readyState屬性改變時呼叫函式
xmlHttp.onreadystatechange=FunctionName; //FunctionName不要帶寫成FunctionName().
在這個函式中。首先要檢查請求的狀態。XMLHttpRequest 提供了readyState屬性來對伺服器響應進行判斷(readyState的取值如下).
接著,函式會檢查HTTP伺服器響應的狀態值(對應的HTTP的狀態如下).
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
alert("OK");
}
}
建立一個新的HTTP請求,並指定此請求的方法、URL以及驗證資訊.
xmlHttp.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
引數:
bstrMethod:資料傳送方式,GET | POST(大小寫不敏感).
bstrUrl:請求的URL.
varAsync:指定此請求是否為非同步方式,預設為true.
bstrUser:如果伺服器需要驗證,此處指定使用者名稱(可省略).
bstrPassword:驗證密碼(可省略).
最後傳送請求到http伺服器並接收回應,
此方法的同步或非同步方式取決於open方法中的bAsync引數,如果bAsync == False,此方法將會等待請求完成或者超時時才會返回,如果bAsync == True,此方法將立即返回。
responseStream
以Ado Stream物件的形式返回響應資訊
responseText
將響應資訊作為字串返回
responseXML
將響應資訊格式化為Xml Document物件並返回
responseBody
返回某一格式的伺服器響應資料
readyState的取值:
0 (未初始化)
1 (正在裝載)
2 (裝載完畢)
3 (互動中)
4 (完成)
對應的HTTP的狀態:
100 Continue
101 Switching protocols
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
307 Temporary Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Suitable
417 Expectation Failed
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
例子:
var xmlHttp;
function getName(){
var url = document.getElementById('txtUrl');
createHttpRequest();
xmlHttp.onreadystatechange=state_change;
xmlHttp.open("GET",url.value,true);
xmlHttp.send(null);
}
function createHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function state_change(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var resXml=xmlHttp.responseXML;
...//處理XML.
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-462837/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ajax 引數詳解
- js-ajax詳解JS
- JQuery中$.ajax()方法引數詳解jQuery
- python協程詳細解釋以及例子Python
- three.js內部拖拽例子全詳解JS
- 瀏覽器同源策略及 Ajax 跨域解決方案瀏覽器跨域
- sed 命令詳解及示例
- 抽象類及介面詳解抽象
- AJAX基礎知識及核心原理詳解。前後端分離和不分離的優勢與弊端後端
- 前後端資料互動(二)——原生 ajax 請求詳解後端
- 快取穿透詳解及解決方案快取穿透
- EventBus詳解及原始碼分析原始碼
- spring mvc 框架搭建及詳解SpringMVC框架
- Git詳解及github的使用Github
- ArrayMap詳解及原始碼分析原始碼
- adb操作命令詳解及大全
- Java垃圾回收機制詳解及效能最佳化詳解。Java
- 解決 ajax 跨域跨域
- Spring @Conditional註解 詳細講解及示例Spring
- 請詳細描述AJAX的工作原理
- NCNN 模型推理詳解及實戰CNN模型
- Linux mv命令格式及功能詳解!Linux
- Springcloud及Git線上配置詳解SpringGCCloudGit
- Docker介紹及安裝詳解Docker
- EventBus詳解及簡單例項單例
- YUM倉庫配置及命令詳解
- 氣泡排序及優化詳解排序優化
- 詳解Redis主從及哨兵模式Redis模式
- 歸併排序詳解及應用排序
- tomcat架構分析及配置詳解Tomcat架構
- curl常用引數詳解及示例
- JS 反射機制及 Reflect 詳解JS反射
- CountDownLatch和CyclicBarrier區別及詳解CountDownLatch
- SparseArray詳解及原始碼簡析原始碼
- LinkedHashMap 詳解及原始碼簡析HashMap原始碼
- dva框架使用詳解及Demo教程框架
- Linuxepoll模型詳解及原始碼分析Linux模型原始碼
- ADB 操作命令詳解及用法大全
- 前端 JS 之 AJAX 簡介及使用前端JS