0

Ceci est mon code: (plutôt la partie de celui-ci louches)Incompatibilité AJAX dans IE 8?

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

Ok. Parfois, cela fonctionne très bien, mais parfois JavaScript Debugger dans IE me dit ceci:

objet ne prend pas en charge cette propriété ou méthode ligne de 59 caractère 3

Ce qui revient à ... .

var requisicao=new XMLHttpRequest(); 

Qu'est-ce que les bugs moi est le fait que, parfois, IE 8 accepte cela et se déplace, mais parfois, il étrangle et ne fonctionne pas?

Toute aide est la bienvenue

Merci à l'avance

+2

Les lignes d'erreur signalées par IE sont essentiellement des nombres aléatoires. Il vaut mieux utiliser le débogueur de script et le faire sauter là où l'erreur s'est réellement produite, plutôt que d'essayer de comprendre où se trouve cette mythique "ligne 59". –

+0

C'est ce que j'ai fait en réalité. J'utilise le débogueur de script qui fait partie des outils de développement sur IE 8. Il me dit exactement le numéro de ligne et saute même au code d'actul et accentue le problème. Donc je pense que c'est juste ... En outre, parce que j'avais ce problème très avec jQuery mais maintenant je suis revenu au javascript régulier pour essayer et clouer le problème. –

Répondre

2

Edit: Apparemment, dans ce cas, le numéro de la ligne d'Internet Explorer est correcte. Cela semble être un problème commun avec Internet Explorer 8. Il existe une solution potentielle ici: Ajax app works in some browers, not others.

Voici la partie pertinente du code:

try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } 
catch (e) { try { xmlhttp = new XMLHttpRequest(); } 
catch (e) { xmlhttp = false; }}} 

Malheureusement, les numéros de ligne d'Internet Explorer ne sont pas toujours exactes, car ils sont basés sur son propre, sérialisation interne de votre code. Le message d'erreur provient probablement d'une ligne différente (j'espère près de la ligne 59). Je voudrais vérifier les endroits où vous appelez une méthode sur un objet qui pourrait être définie à différentes valeurs pour une raison quelconque.

+0

Ouais? Au début, j'utilisais jQuery. Ensuite, le débogueur m'a dit que le problème était dans le fichier jquery.js, dans ce domaine, environ: xhr: A.XMLHttpRequest ... Et maintenant j'utilise javascript régulier et il dit la même chose? La même erreur et la même commande? Ce ne peut pas être une coïncidence? –

+1

@Felipe: J'ai cherché cette erreur avec XMLHttpRequest et j'ai trouvé cette question: http://stackoverflow.com/questions/1482177/problem-with-ie8-using-ajax. Vous pouvez essayer la solution à partir de là (il y a beaucoup plus de code, mais vous pouvez supprimer la partie dont vous avez besoin). –

+0

merci, je vais jeter un oeil –