【问题标题】:XMLHttpRequest error in IE, works without issue in Chrome/FFIE 中的 XMLHttpRequest 错误,在 Chrome/FF 中没有问题
【发布时间】:2011-02-20 05:57:56
【问题描述】:
function addRequest(req) {
try {
    request = new XMLHttpRequest();
} catch (e) {
    try{
        request = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){        
        try {
            request = new ActiveXObject("Microsoft.XMLHttp");
        } catch (e) {
            alert("XMLHttpRequest error: " + e);
        }
    }
}
request.open("GET", req, true);
request.send(null);
return request;

}

如您所见,它 IE 显然失败了我尝试发出请求的所有 3 种方式。我一直在进行大量搜索以尝试找出可能的问题,但根据我阅读的所有帐户,我上面发布的代码应该可以工作。

我没有将 jquery 用于 AJAX,但是当其他人遇到 httprequest 对象问题时,我看到它推荐。我可以用几行 jquery 替换上面的混乱并假设它会处理 IE 的丑陋吗?

谢谢!

【问题讨论】:

  • 出于好奇,添加“var request=null;”在第一个 try 语句之前为您解决问题?

标签: javascript jquery ajax internet-explorer xmlhttprequest


【解决方案1】:

我还没有将 jquery 用于 AJAX,但是我 看到别人有推荐的 httprequest 对象有问题。 我可以把上面的烂摊子换掉吗 用几行 jquery 和 假设它会处理 IE 的 丑吗?

简短回答:是的。

虽然 jquery 语法做的事情不同,所以你不会显式地创建请求并发送它。它全部包含在一个函数中。例如。来自http://api.jquery.com/jQuery.get/

$.get("test.cgi", { name: "John", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });

您可以忘记浏览器互操作性问题。只要您及时了解 jquery 版本 :) 就喜欢它

【讨论】:

  • 如何让javascript变得纯粹?问题不只是一个 jquery 其他应用程序
【解决方案2】:

不同版本的 IE 有不同的方式来引用 XMLHTTP 对象。

这与您机器上安装的 MSXML 库有关。您正在运行什么操作系统/IE 版本?

尝试运行 Windows 更新。一个奇怪的解决方案,但可以在这里工作。

【讨论】:

  • 我正在运行带有 IE8 的 Windows 7。我正在运行 Windows 更新,但我只是在另一个带有 vista/ie7 的盒子上尝试过它,它在那里也失败了。这是我网站的链接:la.truxmap.com/request?id=boolbbq 自己测试一下,输入新地址并单击提交,或单击星号。感谢您的帮助 Moshe!
  • 我现在在 Mac 上,无法测试!很高兴看到你把事情整理好了。顺便说一句,我很想知道 Windows 更新是否有帮助。可能是 Windows 更新会安装一个相对于您的 coda 而言太新的 XML 解析器,因此使用当前可用的在线教程中未引用的名称进行调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多