您的位置:首页 > 理论基础 > 计算机网络

AJAX XMLHttpRequest -----JQUERY

2017-03-22 11:21 309 查看
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", "https://web.bd.taobizhong.com/Goods/AliPayStatus", true);

http_request.setRequestHeader("GAME_TOKEN", token);

// http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//http_request.send(content);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: