IE8上的ajax问题

时间:2010-02-08 21:48:45

标签: ajax internet-explorer-8

我有一个使用xml文档的旧网站,当我创建它时,我有firefox和IE7进行测试,它工作得很好。从那以后,IE8出现了,并且它发现网站不再正常工作。 这是当前的代码:

if (window.XMLHttpRequest) 
    {
        XMLHttpRequestObject  = new XMLHttpRequest();
        XMLHttpRequestObject.overrideMimeType("text/xml");
        XMLHttpRequestObject.open("GET", "produse.xml", true);
        XMLHttpRequestObject.onreadystatechange = function()
        {   
            if (XMLHttpRequestObject.readyState == 4) 
            {
                xmlDocument = XMLHttpRequestObject.responseXML;
                removeWhitespace(xmlDocument);                                          
            }
        }
    XMLHttpRequestObject.send(null);
    } 
    else if (window.ActiveXObject) 
        {
            xmlDocument= new ActiveXObject("Microsoft.XMLDOM"); 
            xmlDocument.async=false; 
            if (xmlDocument .readyState == 4)
            {
                xmlDocument.load("produse.xml");    
            }
        }

但是我收到了这个错误:

Message: Object doesn't support this property or method
Line: 19
Char: 3
Code: 0

涉及:

XMLHttpRequestObject.overrideMimeType("text/xml");

我应该使用什么?

2 个答案:

答案 0 :(得分:2)

此页面显示了firefox / ie / ie8之间存在的差异,并提供了一些如何操作的示例:

http://www.javascriptkit.com/jsref/ajax.shtml

大多数情况下它说IE8不支持这种方法,你必须确保你的服务器正在向传出的响应添加正确的标题(text / xml)。

它还有http://www.javascriptkit.com/dhtmltutors/ajaxgetpost3.shtml的链接,解释了常见的陷阱和IE问题。

它说:

if (mygetrequest.overrideMimeType)
 mygetrequest.overrideMimeType('text/xml')

答案 1 :(得分:1)

jQuery将是我的选择。它的速度要快得多,并且支持跨浏览器和CDN。

您可以将代码删除到几行。

$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});