1.ajax异步请求
发送get请求
<script type="text/javascript">
// 定义XMLHttpRequest对象
// 参数:无
// 返回值:XMLHttpRequest对象实例
function createXMLHTTPObject(){
var XMLHttpFactories = [// 兼容不同浏览器和版本的创建函数数组
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")},
];
var xmlhttp = false;
for (var i = 0; i < XMLHttpFactories.length; i ++ ){
//尝试调用匿名函数,如果成功则返回XMLHttpRequest对象,否则继续调用下一个
try{
xmlhttp = XMLHttpFactories[i]();
}catch (e){
continue; // 如果发生异常,则继续下一个函数调用
}
break; // 如果成功,则中止循环
}
return xmlhttp; // 返回对象实例
}
var xmlHttp = createXMLHTTPObject();
function request(url){
xmlHttp.open("GET",url, false);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.send(null);
alert(xmlHttp.responseText);
}
function handleStateChange()
{
if(xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200 || xmlHttp.status == 0)
{
alert(xmlHttp.responseText);
}
}
}
window.onload = function()
{
var b = document.getElementsByTagName("input")[0];
b.onclick = function(){
var url = "server.asp?callback=functionName"
request(url);
}
}
</script>
发送post请求
function request(url)
{
xmlHttp.open("POST",url, false);
//这里添加请求的表头,表示的传递的是表单值,并且这个请求类型还可以为text/xml或者application/xml类型给服务器发送xml数据,甚至可以用application/json发送javascript对象。
xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlHttp.send("callback=functionName");
alert(xmlHttp.responseText);
}
2.终止请求
abort()方法调用之前,要先清除onreadystatechange事件处理函数,但是如果直接为null,可能就会出错,最好是写成空函数的形式。
xmlHttp.onreadystatechange = function(){};