与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:无法使用缓存文件(更新服务器上的文件或数据库),向服务器发送大量数据(POST 没有数据量限制),发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
发送Ajax请求(GET)
1.创建XMLHttpRequest对象
var request = null;
IE
if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
非IE
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
}
2.设置回调函数
request.onreadystatechange = function() {
onreadystatechange检测状态的改变(检测这两个status,readyState)
请求成功status==200&&readyState==4
if (status == 200 && request.readyState == 4) {
获得服务器传回的值responseText,responseXML
var accp = request.responseText;//得到的是纯文本
var accp2 = reques.responseXML;//得到的是dom对象,需要解析
}
}
3.封装数据,初始化request对象
request.open("GET", "login.do?username="+un+"&password="+pw, true);
4.发送请求
request.send(null);
============================================================
发送Ajax请求(POST)其余和上面的一样
3.封装数据,初始化request对象
request.open(“POST”, “login.do, true);
4.设置post请求头
Content-Type”,“application/x-www-form-urlencoded"重新编码过的请求头
request.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);
5.发送请求
request.send(“username=”+un+”&password="+pw);
window.onload = function() {
//获取a节点并添加onclick响应函数
document.getElementsByTagName("a")[0].onclick=function(){
//创建一个XML对象
var request = new XMLHttpRequest();
//准备发送请求数据:url
var url = this.href+"?time="+new Date();
//定义请求方式
var method = "GET";
//调用XMLhttprequest对象的open方法
request.open(method, url);
//调用XMLhttprequest对象的seng方法
request.send(null);
//为XMLhttprequest对象添加onreadstatechange 响应函数
request.onreadystatechange = function() {
//判断响应是否完成:XMLhttprequest对象的readyState属性值为4的时候
if (request.readyState == 4) {
//在判断响应是否可用:XMLhttprequest对象status的属性值为200
if (request.status == 200 || request.status == 304) {
//打印响应结果
/* alert(request.responseText); */
document.getElementsById("content").innerText=request.responseText;
}
}
}
//取消a节点的默认行为
return false;
}
}