2010-02-08 58 views
2

我有一个使用xml文档的旧网站,当我创建它时,我使用了Firefox和IE7进行测试,它的工作非常好。从那时起,IE8出现了,并且它认为该网站不能正常工作。 这是当前的代码:在IE8上的ajax问题

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

此页面显示的差异火狐/ 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

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

您可以将该代码分解为几行。

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