Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Ajax da IE e Filter Java

    Salve mastri Giava,

    ho il seguente problema "EPICO"

    sto sviluppando una applicazione con servlet. Per tracciare le richieste ho creato un Filtro chiamato AccessLogFilter dove all'interno c'è una semplice println() dell' URI, fino qui tutto ok, niente di più semplice...ora arriva il bello...

    faccio una chiamata POST tradizionale sia da FF4 che da IE8 tutto ok, il filtro traccia perfettametne l'uri richiesto

    invece se faccio una chiamata Ajax, il comportamento è differente, in FF4 il filtro traccia correttamente la chiamata, mentre in IE il filtro viene completamente ignorato.... .....la cosa ancora più strana è che sia in FF4 che in IE la richiesta Ajax viene correttamente soddisfatta senza nessunissimo errore!!!!!!.

    MAI VISTA UNA COSA DEL GENERE!!!!!!!

    Consigli???

  2. #2
    posso aggiungere questo:
    le chiamate Ajax le faccio con JQuery mentre il webApplication è TomCat

  3. #3
    la situazione si intriga:

    se prendo la chiamanta Ajax effettuata dal browser:

    e la forzo facendo una chiamata manuale dall'url bar di IE, il filtro traccia la chiamata!!!!


    sento puzza di bug

  4. #4
    VIVA ho trovato una soluzione

    e siccome ODIO le persone che trovano la soluzione e non postanto il risultato, di seguito il WORKAROUND:

    il problema è dato da IE (non so se si verifichi su tutte le versioni) che, se viene effettuata una richiesta Ajax uguale ad una gia effettuata, decide di sua spontanea volonta di non effettuare la chiamata al server ma la prendere dalla cache....

    purtroppo non basta aggiungere le classiche righe meta per evitare il caching, perche IE se ne frega...

    di conseguenza se si ha una chiamata ajax come segue

    codice:
    $.ajax({
    		url: 'AjaxController',
    		traditional:true,
    		data : {
    			'param1':'param1',
    			'param2':'param2'
    		},
    		success: function(data) {
    			$('#id').html(data);
    		}
    	});
    basterà aggiungere un timestamp che renda unica la chiamata

    codice:
    $.ajax({
    		url: 'AjaxController',
    		traditional:true,
    		data : {
    			'param1':'param1',
    			'param2':'param2',
                            'IE_SUCKS': new Date().getTime()
    		},
    		success: function(data) {
    			$('#id').html(data);
    		}
    	});
    that's all folks!

  5. #5
    Originariamente inviato da GringoMrk
    VIVA ho trovato una soluzione

    e siccome ODIO le persone che trovano la soluzione e non postanto il risultato, di seguito il WORKAROUND:

    il problema è dato da IE (non so se si verifichi su tutte le versioni) che, se viene effettuata una richiesta Ajax uguale ad una gia effettuata, decide di sua spontanea volonta di non effettuare la chiamata al server ma la prendere dalla cache....

    purtroppo non basta aggiungere le classiche righe meta per evitare il caching, perche IE se ne frega...

    di conseguenza se si ha una chiamata ajax come segue

    codice:
    $.ajax({
    		url: 'AjaxController',
    		traditional:true,
    		data : {
    			'param1':'param1',
    			'param2':'param2'
    		},
    		success: function(data) {
    			$('#id').html(data);
    		}
    	});
    basterà aggiungere un timestamp che renda unica la chiamata

    codice:
    $.ajax({
    		url: 'AjaxController',
    		traditional:true,
    		data : {
    			'param1':'param1',
    			'param2':'param2',
                            'IE_SUCKS': new Date().getTime()
    		},
    		success: function(data) {
    			$('#id').html(data);
    		}
    	});
    that's all folks!
    Si, Explorer effettua un caching spinto delle chiamate ajax, una volta ci sono impazzito per un giorno intero...se avessi letto prima il post te lo avrei suggerito.
    Il workaround che hai trovato va bene, basta aggiungere un parametro che renda diversa ogni chiamata.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.