X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F06_net%2F01_XNetXHR.js;h=8d16cfad3700115293b5c3e2452f23edb54c9561;hb=326aa8b45801298cafb13d4fd367cd240cfc4abc;hp=843b5dc0c115eb3a431d033baaae0141cd0b4377;hpb=2956150a7c2798e60639b36d69b0c13f6b20a62a;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/06_net/01_XNetXHR.js b/0.6.x/js/06_net/01_XNetXHR.js index 843b5dc..8d16cfa 100644 --- a/0.6.x/js/06_net/01_XNetXHR.js +++ b/0.6.x/js/06_net/01_XNetXHR.js @@ -45,6 +45,7 @@ var // Opera7.6+, Safari1.2+, khtml3.?+, Gecko0.9.7+ // ie7&8 ではローカルリソースには ActiveX の XHR を使う X_Net_XHR_createW3C = window[ 'XMLHttpRequest' ] && function(){ return X_Net_XHR_w3c || ( X_Net_XHR_w3c = new XMLHttpRequest() ); }, X_Net_XHR_w3c = X_Net_XHR_createW3C && X_Net_XHR_createW3C(), + X_Net_XHR_cors = X_Net_XHR_w3c && X_Net_XHR_w3c.withCredentials !== undefined, X_Net_XHR_progress = X_Net_XHR_w3c && X_Net_XHR_w3c.onprogress !== undefined, X_Net_XHR_upload = X_Net_XHR_w3c && !!X_Net_XHR_w3c.upload, @@ -106,7 +107,7 @@ X[ 'XHR' ] = { 'UPLOAD_PROGRESS' : X_Net_XHR_upload, // or gadget proxy or flash - 'CORS' : X_Net_XHR_xdr || ( X_Net_XHR_w3c && X_Net_XHR_w3c.withCredentials !== undefined ) + 'CORS' : X_Net_XHR_xdr || X_Net_XHR_cors }; if( X_Net_XHR_msXMLVer ) X[ 'XHR' ][ 'MSXML_VERSION' ] = X_Net_XHR_msXMLVer; @@ -151,13 +152,16 @@ X_TEMP.X_Net_XHR_init = function(){ init, tmp; - this._dataType = obj[ 'dataType' ] || X_URL_getEXT( url ); + this._dataType = obj[ 'dataType' ]; if( !raw || xDomain !== this._isXDR || ( X_Net_XHR_createMSXML && isFile !== this._isMsXML ) ){ raw && this[ 'unlisten' ]( [ 'load', 'readystatechange', 'progress', 'error', 'timeout' ] ); init = true; this[ '_rawObject' ] = raw = xDomain ? - X_Net_XHR_createXDR() : + ( X_Net_XHR_cors ? + X_Net_XHR_createW3C() : + X_Net_XHR_createXDR() + ) : isFile ? ( X_Net_XHR_createMSXML ? ( X_Net_XHR_msXML = X_Net_XHR_msXML || X_Net_XHR_createMSXML() ): @@ -182,7 +186,7 @@ X_TEMP.X_Net_XHR_init = function(){ raw.responseType = 'text'; break; case 'json' : - case 'moz-json' : + case 'moz-json' : // firefox9- raw.responseType = X_UA[ 'Gecko' ] ? this._dataType : ''; // Iron 37 でエラー break; case 'document' : @@ -260,6 +264,7 @@ X_TEMP.X_Net_XHR_init = function(){ for( p in headers ){ if( X_EMPTY_OBJECT[ p ] ) continue; + console.log( headers[ p ] ); headers[ p ] !== undefined && raw.setRequestHeader( p, headers[ p ] + '' ); // Opera8.01+, MSXML3+ }; }; @@ -430,7 +435,7 @@ X_TEMP.X_Net_XHR_init = function(){ // eval() を使っているけど JSON の無いブラウザは XDomain な XHR はできないのでよしとする。 // XDomain な XHR の際は Flash 等で代替し、その中に Json parser も組み込む。 // http://d.hatena.ne.jp/sshi/20060904/p1 - if( !X_Type_isObject( data ) ) data = window.JSON ? JSON.parse( data ) : eval( '(' + data + ')' ); + if( !X_Type_isObject( data ) ) data = X_String_parseTrustedJsonString( data ); break; case 'document' : case 'xml' :