что IE любит в xmlhttprequest? - PullRequest
       0

что IE любит в xmlhttprequest?

0 голосов
/ 02 февраля 2011

у меня есть следующий код, работающий сейчас во всех браузерах, но IE8 .. я читал, что если я использовал xhttp = new ActiveXObject ("Microsoft.XMLHTTP"); линия это должно работать для IE, но я не уверен .. у кого-то есть опыт в том, чтобы заставить это работать с ie8

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
 {
 xhttp=new XMLHttpRequest();
 }
else
 {
 xhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
} 

var xmlDoc = loadXMLDoc("nhl_standings_xml.xml");
var x = xmlDoc.getElementsByTagName("nhlall");

Ответы [ 3 ]

0 голосов
/ 02 февраля 2011

Я предлагаю вам этот МИНИМАЛЬНЫЙ движок ajax.

http://pastebin.com/uXJe9hVC

пример использования

ajax POST-запрос

Ajax.call('GET','http://localhost/index.php',function(data) {
{
 //doing stuff with the data response
},'ASD');

аргументы вызова: URL, обратный вызов, POST

это так просто.

0 голосов
/ 22 февраля 2012

Попробуйте это как стартер запроса:

  if      (window.XMLHttpRequest) return new window.XMLHttpRequest();
  else if (window.ActiveXObject) {
     // the many versions of IE's XML fetchers
     var AXOs = [
        'MSXML2.XMLHTTP.6.0',
        'MSXML2.XMLHTTP.5.0',
        'MSXML2.XMLHTTP.4.0',
        'MSXML2.XMLHTTP.3.0',
        'MSXML2.XMLHTTP',
        'Microsoft.XMLHTTP',
        'MSXML.XMLHTTP'
     ];
     for (var i = 0; i < AXOs.length; i++) {
        try     { return new ActiveXObject(AXOs[i]); }
        catch() { continue; }
     }
     return null;
  }

Приведенный выше порядок должен быть правильным от худшего, к слову.

0 голосов
/ 02 февраля 2011

Хм, код выглядит хорошо.Вы пробовали Асинхронный запрос?Когда у вас есть xhttp.open("GET", dname, false);, это синхронно.Измените это false на true, и вы будете асинхронными.Кроме того, ваша переменная xhttp не объявлена ​​должным образом (поправьте меня, если я ошибаюсь. Будучи программистом Python, я не могу сказать половину времени).

Попробуйте этот код:

function loadXML(url)
{
  var xmlHttp;

  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    // Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        return false;
      }
    }
  }

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      return xmlHttp.responseText;
    }
  }

  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
}

var xmlDoc = loadXML("nhl_standings_xml.xml");
var x = xmlDoc.getElementsByTagName("nhlall");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...