0

eu des problèmes avec ce script, ive réussi à le faire fonctionner dans ie8, fonctionne très bien sur le chrome.Cross domaine ajax POST IE7 avec jquery

initilize: function(){ 
$('#my_form').submit(function(){ 
    if ($.browser.msie && window.XDomainRequest) {  
    var data = $('#my_form').serialize(); 
    xdr=new XDomainRequest(); 
    function after_xhr_load() 
    { 
    response = $.parseJSON(xdr.responseText); 
    if(response.number =="incorrect format"){ 
    $('#errors').html('error'); 
    } 
    else 
    { 
    $('#errors').html('worked'); 
    } 
    } 
    xdr.onload = after_xhr_load; 
    xdr.open("POST",$('#my_form').attr('action')+".json"); 
    xdr.send(data); 

    } else { 
    $.ajax({ 
    type: "POST", 
    url: $('#my_form').attr('action')+".json", 
    data: $('#my_form').serialize(), 
    dataType: "json", 
    complete: function(data) { 
    if(data.statusText =="OK"){ 
     $('#errors').html('error'); 
    } 
    if(data.statusText =="Created"){ 
     response = $.parseJSON(data.responseText); 
     $('#errors').html('Here is your code:' +response.code); 
    } 
    } 
    }); 
} 
return false; 
}); 
} 

Je comprends que ie7 n'a pas l'objet XDomainRequest(). Comment puis-je répliquer ceci dans ie7?

Merci à l'avance

+0

Peut-être que vous cherchez JSONP, voir http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain – sroes

+0

La réponse simple est que vous ne pouvez pas le répliquer dans IE7 sans passer à une requête de même domaine ou en utilisant JSONP plutôt que CORS. –

Répondre

4

Vous ne va pas obtenir ce code pour travailler dans IE7 depuis est des appels inter-domaines ne sont pas pris en charge dans ce vieux navigateur. Vous devez soit changer le backend pour faire un appel JSONP ou vous devez utiliser un proxy côté serveur.

+0

Merci pour la réponse, j'ai pensé autant. – DickieBoy