2012-11-12 21 views
14

Internet Explorer 9 non invia i cookie di sessione con le mie richieste AJAX.Nessun cookie di sessione su Internet Explorer 9 Richieste AJAX

Quando si invia una richiesta di autenticazione alla mia API tramite AJAX, restituisce una risposta che imposta un cookie di sessione. Le chiamate successive all'API tramite AJAX non inviano i cookie al server.

L'API si trova sullo stesso host. Allo stesso modo, anche le richieste regolari di pagine non AJAX non mostrano il cookie di sessione. Ho disattivato tutte le impostazioni di privacy e sicurezza in Opzioni Internet. Chrome invia correttamente i cookie.

Come posso ottenere IE per restituire i cookie? Grazie!

+0

È possibile pubblicare le intestazioni di richiesta e risposta HTTP? – slashingweapon

+0

Ho riscontrato lo stesso problema oggi. Non ho ancora trovato una soluzione. Si prega di tenere aggiornata questa domanda sui possibili approcci! –

+0

Ho trovato http://www.dotnet-developer.de/2012/01/aspnet/session-cookies-lost-in-internet-explorer-ie9/ ma non l'ho ancora capito del tutto. Se aggiungo solo l'header HTTP descritto, tutto sembra funzionare ma IE continua a dire che non ho una politica sulla privacy. –

risposta

0

Ho avuto questo problema con IE9 per una richiesta di ottenere. Ho convertito da $ .getJSON (usando un url con parametri di stringa di query) a $ .ajax (usando un post). La mia teoria sarebbe simile alla libreria MVC server di MS, a IE non piace ricevere richieste che restituiscono JSON (devi permetterlo specificamente in MVC o ti dà un errore che indica che le richieste di ottenere che restituiscono JSON hanno qualche errore di sicurezza) Comunque, visto che questo è stato uno dei miei migliori hit di Google, ho pensato di pubblicare ciò che ha funzionato per me.

0

Basta mettere Math.random() in URL del tipo,

$.ajax({ 
    type: "GET", 
    url: "getRequestData.do?parameter=GetModelService&t="+Math.random(), 
    data: "sub=ADD", 
    cache: false, 
    ................ 
    ............... 
2

L'URL Stavo tentando di accesso utilizzato un carattere di sottolineatura ('_'). Questo è un URL non valido e quindi Internet Explorer non accetta i cookie correttamente. Risolvere questo problema ha risolto la mia istanza del problema.

+0

Ho lo stesso problema, e ho anche underscore nell'URL. Il tuo URL ha il carattere di sottolineatura nel dominio o sottodominio O nel resto dell'URL? –

0

tenta di evitare l'uso di localhost o 127.0.0.1 come parte dell'URL e vedere se fa alcuna differenza.

Problemi correlati