2012-02-14 22 views
7

Ho un modulo il cui obiettivo è un iframe.Internet Explorer intercetta la risposta XML

Quando si invia il modulo, la risposta è XML e ho Javascript che analizza la risposta.

Ho notato che durante l'esecuzione su IE, IE intercetta la risposta e la tratta come un feed RSS, quindi il mio codice non riceve mai la risposta. Se disattivo i feed RSS (dall'opzione Internet, scheda contenuto) tutto funziona correttamente.

Ho impostato il tipo di contenuto della risposta su "text/xml; charset = UTF-8 "ma ancora non funziona.

C'è qualche soluzione?

+1

Heh, mi piace leggere cose strane come questa in IE. – Oliver

risposta

2

La soluzione migliore sarebbe non utilizzare un iframe in questo caso. Sembra che IE stia prendendo la risposta http e la stia leggendo da sola. C'è un motivo per cui non stai effettuando una chiamata AJAX per recuperare le informazioni? Sembra che vi affidate ai JavaScript per gestire la risposta in ogni caso, quindi vorrei pensare che l'utilizzo di un oggetto XMLHttpRequest sarebbe meglio per voi: http://www.w3.org/TR/XMLHttpRequest/

Se questo è troppo complicato, guardare in una libreria come jQuery: http://jquery.com/ che ha funzioni integrate (e molto più semplici) per effettuare chiamate AJAX e gestire le risposte.

Per espandere questo, si dovrebbe associare la funzione di invio del modulo a una funzione JS (o usare jQuery per farlo) e raccogliere i dati del modulo, inviarlo in una richiesta AJAX e gestire la risposta. jQuery ha una funzione built-in serialize() che ha lo scopo di convertire i dati del modulo in una pagina in informazioni pronte per l'uso nella funzione ajax() da inviare al server. Se non conosci l'oggetto XMLHttpRequest, ti consiglio caldamente di utilizzare una libreria come jQuery per questa attività.

0

Sì, anche assicurarsi che il file viene emesso con il corretto header Content-Disposition l'utilizzo, che IE ottiene "response.xml" e non "response.php" o qualcosa del genere ...

'Content-Disposition: attachment; filename = "response.xml" '

+0

A volte la disposizione degli allegati funziona a volte in cromo, quindi assicurati di leggere le informazioni sull'agente utente e di fare solo gli allegati in IE. Gli altri browser in genere gestiscono correttamente le risposte purché il tipo di contenuto sia impostato correttamente, indipendentemente dall'URL utilizzato per accedervi. – Brian

1

OK, trovato il problema ... La mia risposta XML contiene tag FEEDBACK. IE tratta questi tag come feed RSS. La modifica del nome del tag in FDBACK risolve questo problema ...

MS, perché questo non è documentato ???