2
0
Эх сурвалжийг харах

use XMLHTTPRequest2 if available to fix IE11 errors with overrideMimeType

Dale Stammen 12 жил өмнө
parent
commit
ddc9af9083

+ 20 - 3
examples/js/loaders/ctm/CTMLoader.js

@@ -72,7 +72,7 @@ THREE.CTMLoader.prototype.loadParts = function( url, callback, parameters ) {
 	}
 
 	xhr.open( "GET", url, true );
-	if ( xhr.overrideMimeType ) xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
+	if ( xhr.overrideMimeType && !( 'FormData' in window ) ) xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
 	xhr.setRequestHeader( "Content-Type", "text/plain" );
 	xhr.send( null );
 
@@ -101,7 +101,13 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 			if ( xhr.status === 200 || xhr.status === 0 ) {
 
-				var binaryData = xhr.responseText;
+				var binaryData;
+
+				if( xhr.responseType === 'arraybuffer' )  {
+					binaryData = new Uint8Array(xhr.response);
+				} else {
+					binaryData  = xhr.responseText;
+				}
 
 				var s = Date.now();
 
@@ -194,8 +200,19 @@ THREE.CTMLoader.prototype.load = function( url, callback, parameters ) {
 
 	}
 
-	xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
 	xhr.open( "GET", url, true );
+
+	// check if xhr2 is available
+	if ( 'FormData' in window ) {
+
+		xhr.responseType = "arraybuffer";
+
+	} else if ( xhr.overrideMimeType )  {
+
+		xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
+
+	}
+
 	xhr.send( null );
 
 };