2015-09-09 15 views
13

Sto usando jQuery per leggere un file XML. A volte l'XML è vuoto, e mi aspetto che la funzione di errore (no_info) venga eseguita perché il file non è formattato secondo dataType.JQuery AJAX, comportamento diverso in I.E. E Firefox

In I.E. 10 viene eseguita la funzione di errore. Ma in Firefox (40.0.2) viene eseguita la funzione di successo (analisi). Perché entrambi i browser si comportano in modo diverso e quale è corretto?

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script> 
    $.ajax({ 
     url: '/~play/shout.xml', 
     dataType: "xml", 
     success: parse, 
     error: no_info 
    }); 
</script> 
+5

IE essendo IE, l'hai provato senza il '~'? Ho appena rinunciato a questo ... quando il mio team sviluppa siti web/servizi, abbiamo sempre messo quel jumbotron lassù con il messaggio "get yourself some chrome/firefox". – NemanjaT

+0

Penso che questo stia accadendo perché potrebbe esserci un carattere senza caratteri di escape o un carattere di nuova riga nel file, in cui i browser li interpretano in modo diverso. Puoi controllare il tuo xml per vedere se c'è una nuova riga? Se è così rimuovilo e riprova. – afrin216

+0

No NemanjaT questo non è il problema. Il file xml ha letto correttamente. Posso leggere i nodi dal file. Ma quando il file XML è vuoto, Firefox utilizza la funzione parse e IE passa alla funzione no_info. E questo è strano .... –

risposta

0

dataType parametro indica semplicemente quale intestazione "Content-Type" è prevista. Fintanto che il file esiste e viene servito con una funzione di successo content-type corretta dovrebbe essere attivata.

1

Se fossi in te, avrei impostato il callback su console.log (risposta) per il successo e l'insuccesso ... quindi avrei visto quale fosse la differenza.

Inoltre, guarderei nella scheda di rete per vedere quali sono le intestazioni di risposta.

Problemi correlati