Ajax异步请求技术

tech2023-07-31  93

Ajax是什么

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

接下来介绍Ajax发送异步请求需要了解的几点知识:

1. 获取XMLHttpRequest对象

var xmlHttp; //根据浏览器的不同获取对象 function createXMLHttpRequest() { if (window.XMLHttpRequest) { // 如果可以取得XMLHttpRequest xmlHttp = new XMLHttpRequest(); // Mozilla、Firefox、Safari } else if (window.ActiveXObject) { // 如果可以取得ActiveXObject xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer } }

2. XMLHttpRequest常用方法

void open(String method, String url, boolean asynch, String username, String password)

method为请求方法,一般为GET或者POST,url为请求链接,asynch为异步设定,参省为true,表示发送异步请求。如果发送的是GET请求,可以在url参数中加上请求参数

void send(content)

在context里放XML、字符串、JSON格式的内容,放进去会放在POST本体中发送

void setRequestHeader(string header, string value)

设置头部信息

3.XMLHttpRequest常用属性

readyState 会有0到4的数值,分別表示不同的请求状态: 0 = 未初始化的连线(uninitialized),还没呼叫open() 1 = 载入中(loading),呼叫open(),还没呼叫send() 2 = 已载入(loaded),呼叫send(),请求header/status准备好 3 = 互动中(interactive),正在与服务器互动中 4 = 请求完成(completed),完成请求 onreadystatechange

参考至callback回调函数,readyState改变时,都会调用onreadystatechange设定的回调函数

responseText

服务器传来的请求回应文字,会设定给这个属性

responseXML

服务器传来的请求回应如果是XML,会变成DOM设定给这个属性

status

服务器回应的状态码,例如200是成功,404为NOT FOUND

statusText

服务器回应的状态文字

4. Ajax请求Demo

function startRequest() { // 1.获取XMLHttpRequest对象 createXMLHttpRequest(); // 2.设定回调函数为handleStateChange() xmlHttp.onreadystatechange = handleStateChange; /*3.发送请求 如果需要带参数: xmlHttp.open("GET?password=9624", "simpleResponse.txt"); */ xmlHttp.open("GET", "simpleResponse.txt"); //发送get请求可以不同,post请求才要 xmlHttp.send(null); } //每当readyState改变时,都会调用设定好的回调函数handleStateChange() function handleStateChange() { if (xmlHttp.readyState == 4) { // 测试请求状态是否完成 if (xmlHttp.status == 200) { // 如果服务器回应OK alert("服务器回应" + xmlHttp.responseText); // 输出服务器返回的字符 } } }
最新回复(0)