AJAX的核心XMLHttpRequest
<html>
<head><script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// all modern browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// for IE5,IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('p1').innerHTML="This file was last modified on: " + xmlhttp.getResponseHeader('Last-Modified');
}
else
{
alert("Problem retrieving data:" + xmlhttp.statusText);
}
}
}
</script>
</head>
<body>
<p id="p1">
The getResponseHeader() function returns a header from a resource.
Headers contain file information like length,
server-type,content-type,date-modified,etc.</p>
<button onclick="loadXMLDoc('/example/xdom/test_xmlhttp.txt')">Get "Last-Modified"</button>
</body>
</html>
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
function createHttpRequest() { var httpRequest = null; //针对IE7,火狐,谷歌等其他浏览器 if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); //针对某些特定版本的mozillar浏览器的BUG进行修正 /* 如果来自服务器的响应没有 XML mime-type 头部,则一些版本的 Mozilla 浏览器不能正常运行。 对于这种情况,httpRequest.overrideMimeType('text/xml'); 语句将覆盖发送给服务器的头部,强制 text/xml 作为 mime-type。 */ if (httpRequest.overrideMimeType) { httpRequest.overrideMimeType("text/xml"); } return httpRequest; } //针对IE5,IE6浏览器 if (window.ActiveXObject) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (ex) { alert("创建XMLHTTPRequest对象失败!"); } } } return httpRequest; } function callServer(token) { var http_request = createHttpRequest(); if (http_request == null) { return; } /* 我们的实例在 open() 的第三个参数中使用了 "true"。 该参数规定请求是否异步处理。 True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。 onreadystatechange 事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。 通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。 */ http_request.open("GET","https://web.bd.taobizhong.com/Goods/AliPayStatus",true); //向服务器发送请求 http_request.send(); //当readyState属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。 http_request.onreadystatechange = function () { //HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4 if (http_request.readyState == 4) { //指定了请求的 HTTP 的状态代码(200表示正常,404表示未找到) if (http_request.status == 200) { document.getElementById("showmsg").innerHTML = http_request.responseText; } } } /* 当前是使用GET方式提交数据,数据都放在URL后面 而POST方法是把要发送的东西放到HTTP HEAD里面,这样最大可以发送2G的数据, 但用POST方法的时候一定要先使用setRequestHeader方法把Content-Type设置为"application/x-www-form-urlencoded", */ // content = "user=" + encodeURIComponent("gongxiongwei"); //http_request.open("POST","WebForm2.aspx",false); http_request.open("GET",true); http_request.setRequestHeader("GAME_TOKEN",token); // http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //http_request.send(content); }
原文链接:https://www.f2er.com/ajax/161290.html