请教各位一个问题,在不同版本、不同系统下的浏览器在处理ajax请求的的问题。
环境:
1、XMLHttpRequest全局唯一由util.getAjaxObj提供
2、调用initPara函数
现象:
在win7 ie8下ajaxRespose函数被调用了1次
在win7 ie9下ajaxRespose函数被调用了1次
在win7 ie10下ajaxRespose函数被调用了1次
在win8 ie10下ajaxRespose函数被调用了2次
在win server 2012 ie10下ajaxRespose函数被调用了2次
这段代码是有问题的,个人觉得在win8和server2012下反应的现象才是准确的,但是不知道为在win7下是这样。求帮忙解疑!!!
util.getAjaxObj = function() { var xmlhttp; window.status = ''; if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); alert("hi"); } else if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } return xmlhttp; }; var xmlhttp = null;//ajax xmlhttp function initPara() { fun1(); fun2(); } /* *请求需要处理返回结果 */ function fun1() { var url = "/test!func1.action"; if (xmlhttp == null) { xmlhttp = util.getAjaxObj(); } xmlhttp.open("POST", url, false); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.onreadystatechange = ajaxRespose; xmlhttp.send(null); function ajaxRespose() { if (xmlhttp.readyState == 4) { var res = xmlhttp.responseText; alert(res); } } } /* *不需要处理返回结果 */ function fun2() { var url = "/test!func2.action"; if (xmlhttp == null) { xmlhttp = util.getAjaxObj(); } xmlhttp.open("POST", url, false); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send(null); }
相关推荐
然而,在与老版本IE兼容或使用VBA、VBScript等脚本语言时,Microsoft.XMLHTTP仍然是一个有效的选择。 总结来说,通过Microsoft.XMLHTTP对象获取网络时间是一种古老的客户端编程技术,它利用HTTP协议与服务器进行...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
在这种背景下,微软提供了ActiveX控件版本的XMLHTTP对象,可以通过COM(Component Object Model)接口被其他编程语言调用,包括C++。 #### 在VC中调用XMLHTTP对象 Visual C++(VC)作为一款广泛使用的C++集成开发...
本文将详细介绍如何使用JavaScript解决浏览器兼容性问题,特别是针对XMLHttpRequest对象的创建及对不同版本IE浏览器的识别。 #### 二、XMLHttpRequest对象的兼容性创建 XMLHttpRequest对象是用于执行异步请求的...
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2....
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
特别是在处理Ajax请求时,如何优雅地在不同浏览器(尤其是IE与其他现代浏览器)间创建并使用`XMLHttpRequest`对象显得尤为重要。本文将围绕这一主题进行深入探讨。 #### 一、XMLHttpRequest简介 `XMLHttpRequest`...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
本文将讨论XMLHTTP多浏览器兼容性写法,解决XMLHTTP在不同浏览器中的兼容性问题。 在过去,使用XMLHTTP时,我们通常需要根据浏览器的类型来选择不同的创建方式。例如,在IE浏览器中,我们使用ActiveXObject来创建...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 <br>现在的绝对多数浏览器都增加了对XmlHttp的支持,IE...
XMLHTTP是Microsoft ActiveX组件的一部分,通常包含在不同的Microsoft Internet Explorer版本或Microsoft XML (MSXML) 库中。在易语言中,我们可以利用这些组件进行异步HTTP请求,获取远程服务器的数据,而无需用户...
XmlHttp中文参考手册 ...现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。
ajax经典实例大全1 <!... function loadXMLDoc() ... if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open
在IT行业中,尤其是在Web开发领域,了解用户使用的浏览器版本至关重要,因为不同的浏览器版本可能对网页的渲染和功能支持存在差异。对于Internet Explorer(IE)浏览器,由于其在历史上有过多个版本,开发者经常需要...
总结起来,创建XMLHttpRequest对象并实现跨浏览器兼容性是一项关键任务,它涉及到对各种浏览器特性的理解和适配。通过学习王兴魁老师的课程,开发者可以深入掌握这一技术,并在实际项目中灵活运用,提升用户体验。在...
本文将深入探讨如何创建XMLHTTP对象,这是AJAX的核心组成部分,以及如何针对不同的浏览器,尤其是IE和Mozilla浏览器,进行兼容性处理。 首先,XMLHTTP对象是实现AJAX通信的基础,它负责发送异步HTTP请求到服务器,...
在旧版本的IE中,可能需要使用`new ActiveXObject("Microsoft.XMLHTTP")`或`new ActiveXObject("Msxml2.XMLHTTP.3.0")`。 2. **初始化请求**:使用`open()`方法来初始化一个HTTP请求。它接受三个参数:请求类型...
客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用...
如果创建失败,则尝试创建`Microsoft.XMLHTTP`版本的对象,这通常用于更早版本的IE。 #### 实现示例 基于以上分析,我们可以将上述方法封装成一个函数,以便在不同的浏览器环境下创建`XMLHttpRequest`对象: ```...