2012-03-11 2 views
1

Сценарий ниже отлично работает с Firefox и Chrome, но я не могу заставить его работать, т. Е. Попробовав все, даже понизив безопасность в моем браузере, чтобы убедиться, что это блокирует его, но я все еще не могу заставить его работать.XMLHttpRequest() Не работает с IE

function postData() { 

    var http = new XMLHttpRequest(); 

    var url = "/scripts/remove_fr.php"; 

    var params = ""; 

    http.open("GET", url, true); 



    //Send the proper header information along with the request 

    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

    http.setRequestHeader("Content-length", params.length); 

    http.setRequestHeader("Connection", "close"); 



    http.onreadystatechange = function() { //Call a function when the state changes. 

     if(http.readyState == 4 && http.status == 200) { 



     } 

    } 



    http.send(params); 



} 



    $("#qwerty").click(function() { 

     $('#qwerty').remove(); 

    }); 



</script> 
+0

IE версии? Ошибка? Что не работает? Что происходит? – epascarello

ответ

1

вы уже используете JQuery, так что используйте jQuery's AJAX utility functions! Не пытайтесь катиться самостоятельно; API XMLHttpRequest является уродливым и раздражающим.

Я хотел бы предоставить образец кода, но прямо сейчас, что у вас есть количество просто:

$.get("/scripts/remove_fr.php"); 

, который не так много. Например, ;)

1

Вы можете попробовать этот код, это получает XMLHttpRequest на основе браузера.

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

Пожалуйста, обратитесь ссылку для подробностей w3schools

+0

http://w3fools.com/ – epascarello

3

Ниже IE7, он использует ActiveXObject объекты вместо XMLHttpRequest Так что ваш код должен выглядеть так:

function postData() { 
    var http; 

    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     http = new XMLHttpRequest(); 
    } 
    else { 
     // code for IE6, IE5 
     http = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    var url = "/scripts/remove_fr.php"; 
    var params = ""; 
    http.open("GET", url, true); 

    //Send the proper header information along with the request 
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.setRequestHeader("Content-length", params.length); 
    http.setRequestHeader("Connection", "close"); 
    http.onreadystatechange = function() { //Call a function when the state changes. 
     if(http.readyState == 4 && http.status == 200) { 

     } 
    } 
    http.send(params); 
}