PDA

View Full Version : [JS-Ajax] Problemi con IE8


Tommy
26-12-2009, 00:47
Salve, sto riscontrando dei problemi con il browser IE8 con un codice ajax.
Con Chrome,Firefox,Safari tutto ok, mentre con il browser Microsoft non parte.

Il problema secondo debug è nella risposta.. responseText ma anche con responseXML.. Ho provato sia post che get e da cmq il problema, che risulta fastidioso perchè cosi non posso sfruttare proprio le funzionalità di ajax.

Il codice è semplice mi collego direttamente al file xml o json e lo ricevo come risposta..(senza pagine php o altro intermediarie)



ajax = create();
ajax.open("POST","prova.json");
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.onreadystatechange = callback;
ajax.send(null);

function create()
{
var x = null;
if (window.XMLHttpRequest) {
x = new XMLHttpRequest();
}else if (window.ActiveXObject) {
try {
x = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
x = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return x;
}

function callback() {
if (ajax.readyState == 4) {
var json = eval(ajax.responseText); // blocco
}
}


Uso post cosi per non avere il problema della cache, ma è cmq una fase di prova perchè il problema si presenta anche con metodo get e con file xml e quindi realtivo responseXML (senza eval)

Consigli ?

Grazie :)

Tommy
26-12-2009, 17:06
Nessuno ha questo problema ?

Tommy
26-12-2009, 23:53
Forse era un problema nella mia configurazione di IE su pc ed ora su server va

Ora sembra andare..

Scusate potete anche chiudere :D

khalhell
31-12-2009, 14:27
Salve, sto riscontrando dei problemi con il browser IE8 con un codice ajax.
Con Chrome,Firefox,Safari tutto ok, mentre con il browser Microsoft non parte.



Di solito tra AJAX e IE il problema e sempre della Cache prova a fare una richiesta GET strutturata cosi:

ajax.open("GET","ciao.php&rand="+escape(Math.random()));

anonimizzato
31-12-2009, 14:57
Consiglio spassionato: usa un Framework JS come Prototype o JQuery, oltre alla superiore semplicità nella sintassi eviti di creare code-forking per le diverse versioni dei browser.

Tommy
31-12-2009, 16:07
Di solito tra AJAX e IE il problema e sempre della Cache prova a fare una richiesta GET strutturata cosi:

ajax.open("GET","ciao.php&rand="+escape(Math.random()));

Per la cache ci sono varie soluzioni, una di queste è anche usare POST che viene gestito in un altro modo del GET..

Cmq il problema era semplicemente che accetta solo richieste http ie e in locale non funziona :D

Messo infatti in server pubblico e funziona..