XMLHttpRequest 的使用······

// JavaScript Document


/*创建XMLHttpRequest对象
*这段代码的核心分为三步:
1、建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。 
2、尝试在 Microsoft 浏览器中创建该对象: 
1)尝试使用 Msxml2.XMLHTTP 对象创建它。 
2)如果失败,再尝试 Microsoft.XMLHTTP 对象。 
3、如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。 

*/


function createXmlHttp(){
var xmlHttp = false;
try {
//在 Microsoft 浏览器上创建 XMLHttpRequest 对象
//如果使用较新版本的 Internet Explorer,则需要使用对象 Msxml2.XMLHTTP
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
//较老版本的 Internet Explorer 则使用 Microsoft.XMLHTTP
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
//在非 Microsoft 浏览器上创建 XMLHttpRequest 对象
if (!xmlHttp && typeof XMLHttpRequest != ‘undefined‘) {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}

/*发出请求:
在所有 Ajax 应用程序中基本都雷同的流程:


1、从 Web 表单中获取需要的数据。 
2、建立要连接的 URL。 
3、打开到服务器的连接。 
4、设置服务器在完成后要运行的函数。 
5、发送请求。 
*/

function callServer() {
  // Get the city and state from the web form
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  // Only go on if there are values for both fields
  if ((city == null) || (city == "")) return;
  if ((state == null) || (state == "")) return;
  // Build the URL to connect to
  var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
  // Open a connection to the server
  xmlHttp.open("GET", url, true);
  // Setup a function for the server to run when it‘s done
  xmlHttp.onreadystatechange = updatePage;
  // Send the request
  xmlHttp.send(null);
}
/*xmlHttp的 onreadystatechange 属性可以告诉服务器在运行完成后做什么。
因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。
在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。

需要特别注意的是该属性在代码中设置的位置 —— 它是在调用 send() 之前 设置的。
发送请求之前必须设置该属性,这样服务器在回答完成请求之后才能查看该属性
*/

function updatePage() {
 if (request.readyState == 4)
if (request.status == 200)
alert("Server is done!");
else if (request.status == 404)
alert("Request URL does not exist");
else
alert("Error: status code is " + request.status);
}





























郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。