Einstellen von XMLHttpRequest.responseType plötzlich verboten?
Habe ich mit der synchronen XMLHttpRequest-mit responseType auf "arraybuffer" für eine ganze Weile zum laden einer Binär-Datei, und warten, bis es geladen ist. Heute bekam ich diese Fehlermeldung:
"Die Verwendung des responseType-Attributes von XMLHttpRequest wird im synchronen Modus im window-Kontekt nicht mehr unterstützt."
was übersetzt in etwa
"Die Nutzung von responseType für XMLHttpRequest im synchronen Modus im window-Kontext(?) nicht mehr unterstützt werden."
Weiß jemand, wie man dieses Problem beheben? Ich wirklich don ' T wollen, verwenden Sie eine asynchrone Anforderung, so etwas wie dieses.
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
Funktioniert gut in chrome.
InformationsquelleAutor der Frage Markus | 2012-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist korrekt Verhalten, wie definiert in den Spezifikation des XMLHttpRequest -:
Den
responseType
Eigenschaft kann nicht eingestellt werden, wenn dieXMLHttpRequest
ist nicht async, das ist synchrone. Einstellung der Dritte parameter deropen
zufalse
Ursachen der Anfrage werden die synchrone.InformationsquelleAutor der Antwort Rob W
Abhilfe
Für den ungeübten Leser, wenn Sie noch brauchen, das synchrone Verhalten, Sie können Ihre download-Inhalt als string und konvertieren Sie Sie dann in byte-Daten
NOTA:
Diese Problemumgehung wird davon ausgegangen das original
request.response
ist einASCII
text.Wenn diese Annahme nicht passen Sie Ihren speziellen Anwendungsfall finden Sie jBinary.
Ich konvertieren es in ein
ArrayBuffer
.Mehr zu Lesen,
Referenzen
InformationsquelleAutor der Antwort Stephan