2013-12-04 3 views
0

Я использую код ниже, и он отлично работает на Firefox и Chrome, но в IE7 говорится, что Access запрещен. Я читал много вещей по этой проблеме, но все же происходит.Xmlhttprequest возвращает Доступ запрещен только на IE

Test.GetContent = function (x, params, callback, optional) { 
    var result = ""; 
    var url = "http://" + this.ip + "/test/getstuff.php?"; 
    var req = this.CreateXMLHTTPObject(); 
    if (!req) 
     return "Browser Incompatibility"; 

    req.open("POST", url, true); 
    req.setRequestHeader('Content-type', 'application/json'); 
    req.onreadystatechange = function() { 
     if (req.readyState != 4) return; 
     if (req.status != 200 && req.status != 304) { 

      return; 
     } 
     callback.call(Test, JSON.parse(req.responseText), optional); 
    } 
    if (req.readyState == 4) return; 
    req.send(JSON.stringify(params)); 
} 
+2

Это не было бы междоменным, не так ли? –

+2

Если это кросс-начало, [IE7 не поддерживает CORS] (http://caniuse.com/cors). –

+0

Да, это кросс-домен, но это также происходит на IE8,9 и 10 – nhenrique

ответ

0

IE отличается, я думаю, вам нужно обрабатывать его по-разному. Это определяет переменную xmlhttp независимо от того, какой браузер ее запускает.

var xmlhttp; 
if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
+1

Это не входит в сообщение, но я бы предположил, что это, скорее всего, то, что 'this.CreateXMLHTTPObject()' уже пытается сделать. –

+0

yes the method this.CreateXMLHTTPObject() возвращает правую переменную, я пытаюсь выполнить XMLHttpRequest, Microsoft.XMLHTTP и так далее. Дело в том, что это происходит с ie8, 9 и 10 тоже – nhenrique

Смежные вопросы