写点什么

ajax 分析 学习 (1),android0 基础

发布于: 10 小时前

try {


xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");


} catch (e) {


try {


xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");


} catch (e2) {


xmlHttp = false;


}


}


xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");???? xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");这两行代码就是尝试使用两个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象。如果都不成功,则将 xmlHttp 变量设为 false,告诉您的代码出现了问题。出现这种情况,可能是因为安装了非 Microsoft 浏览器,需要使用不同的代码。


**处理 Mozil


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


la 和非 Microsoft 浏览器**


var xmlHttp = new XMLHttpRequest object;? 这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象。


支持所有浏览器


var xmlHttp = false;


try {


xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");


} catch (e) {


try {


xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");


} catch (e2) {


xmlHttp = false;


}


}


if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {


xmlHttp = new XMLHttpRequest();


}


这段代码的核心分为三步:?


1、建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。?


2、尝试在 Microsoft 浏览器中创建该对象:?


1)尝试使用 Msxml2.XMLHTTP 对象创建它。?


2)如果失败,再尝试 Microsoft.XMLHTTP 对象。?


3、如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。?


最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器。


Ajax 请求/响应


发出请求?


您已经有了一个崭新的 XMLHttpRequest 对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 JavaScript 方法。接下来就是在所有 Ajax 应用程序中基本都雷同的流程:?


1、从 Web 表单中获取需要的数据。?


2、建立要连接的 URL。?


3、打开到服务器的连接。?


4、设置服务器在完成后要运行的函数。?


5、发送请求。


function callServer() {


// 获取 ID 为 city 的表单信息


var city = document.getElementById("city").value;


var state = document.getElementById("state").value;


// 判断都不为空


if ((city == null) || (city == "")) return;


if ((state == null) || (state == "")) return;


// 创建要发送的 URl


var url = "/scripts/getCode.aspx?city=" + escape(city) + "&state=" + escape(state);


// 打开连接


xmlHttp.open("GET", url, true);


// 请求返回执行的函数


xmlHttp.onreadystatechange = updatePage;


// 发送请求


xmlHttp.send(null);


}


开始的代码使用是基本 JavaScript 代码获取几个表单字段的值。然后设置一个 aspx 页面 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用,简单的 GET 参数附加在 URL 之后。


然后打开一个连接,这是您第一次看到使用 XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为 true,那么将请求一个异步连接。如果使用 false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 JavaScript 方法)。


xmlHttp(XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。


最后,使用值 null 调用 send()。因为已经在请求 URL 中添加了要发送给服务器的数据(city 和 state),所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。


处理响应


什么也不要做,直到 xmlHttp.readyState 属性的值等于 4(就绪状态)。?


服务器将把响应填充到 xmlHttp.responseText 属性中。 使用 xmlHttp.responseText 属性获得服务器的响应。


if(req.readyState==4){


if(req.status == 200 ){


var msg = req.responseXML.getElementsByTagName("msg")[0];


document.getElementById("result").innerHTML = msg.childNodes[0].nodeValue; ?


}


}


validate.jsp 文档:

评论

发布
暂无评论
ajax分析 学习(1),android0基础