2012-06-07 8 views
13

In IE9, sto tentando di effettuare una richiesta di origine incrociata con i cookie. Tuttavia, anche quando dispongo di Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Allow-Methods è impostato su tutti i valori appropriati (il dominio di origine, true e GET, POST), IE9 continua a non inviare o impostare i cookie dalla richiesta. Ecco lo script che sto utilizzando:Effettua una richiesta CORS in IE9 con i cookie?

var xdr = new XDomainRequest() 
xdr.open("http://mydomain.com/cors.php") 
xdr.withCredentials = true; 
xdr.send(); 

Qualche idea su come ottenere i cookie di lavorare con le richieste CORS in IE9?

+0

jeff hai trovato la soluzione? forse puoi inviare informazioni sui cookie come query param come lavoro? – Amareswar

risposta

18

Da questa pagina http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx nella parte inferiore è possibile vedere Update: Internet Explorer 10 now supports CORS using XMLHTTPRequest. Significa che CORS non è gestito correttamente in IE9. Scusate. Propongono alcuni workaround con proxy nello stesso articolo.

matrice di compatibilità browser è data a http://caniuse.com/cors dove da un sostegno parziale significano

Internet Explorer 8 fornisce supporto tramite l'oggetto XDomainRequest ma non supporta le richieste accreditati http://code.google.com/p/sgvizler/wiki/Compatibility.

+0

Forse l'oggetto XHR funziona meglio in IE10 - ma non invia tutti i cookie. – JNF

+1

Posso confermare che funziona correttamente solo in IE10 +. IE9 e IE8 devono usare XDR e fa schifo perché il tipo di contenuto deve essere text/plain e non può usare cookies. A proposito, nessun proxy (o cURL) funzionerà per i cookie perché i cookie interdominio sono vietati anche per ragioni di sicurezza. –

+1

Aggiornamento per notare che credo che IE10 e IE11 su qualsiasi cosa prima di Windows10 richiedono anche la loro speciale intestazione P3P politica da impostare sul server in modo che il server possa leggere i cookie del dominio del server dal browser client in questo modo. – Dtipson

0

Dalla mia esperienza, se entrambi i domini sono sotto il vostro controllo meglio usare postMessage

+1

Un po 'un problema ... http://stackoverflow.com/questions/16226924/is-cross-origin-postmessage-broken-in-ie10 – JNF