Ich habe festgestellt, dass bestimmte Browser anscheinend nicht in CORS-Anfragen credentials unterstützen, zumindest unter bestimmten Bedingungen. Speziell in IE 10 führt der Versuch, xhr.withCredentials = true
zu setzen, zu:
SCRIPT5022: InvalidStateError
und in Safari 5 (aber nicht 6) bekomme ich
INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
erneut als Antwort auf die gleiche Aussage.
Sind das bekannte Probleme, oder richte ich mein XHR irgendwie falsch ein? Gibt es eine Liste, welche Browser withCredentials
unterstützen?
Der 16. August 2011 XHR-Entwurf gibt eine Regel an zum Festlegen von withCredentials
:
Wenn festgelegt: Gibt eine Ausnahme
INVALID_STATE_ERR
aus, wenn der Status nicht GEÖFFNET ist oder das Flagsend()
wahr ist.
Der Entwurf vom 17. Januar 2012 ist jedoch großzügiger:
Wenn gesetzt: löst eine Ausnahme
InvalidStateError
aus, wenn der Status nicht UNSENT oder OFFEN ist oder wenn das Flagsend()
gesetzt ist.
Sie setzen wahrscheinlich withCredentials
, bevor Sie .open
aufrufen, was laut Spezifikation von 2011 nicht zulässig ist, aber von der Spezifikation für 2012 zugelassen wurde. Um beides zu erfüllen, verschieben Sie einfach Ihre Eigentumszuweisung nach Ihrem Aufruf auf .open
.
Tags und Links javascript cors xmlhttprequest