2010-02-08 4 views
2

У меня есть старый сайт, который использует документы xml, и когда я его создал, у меня был firefox и IE7 для тестирования, и он работал просто отлично. С тех пор появился IE8, и он швы, что сайт больше не работает должным образом. Это текущий код:проблема ajax на 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

Эта страница показывает, что различия между светлячками/т/ie8 есть и есть некоторые примеры того, как это сделать:

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

В основном это говорит, что IE8 не поддерживает этот метод и вы должны убедиться, что ваш сервер добавляет правильный заголовок (текст/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.'); 
}); 
Смежные вопросы