X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F06_net%2F01_XNetXHR.js;h=4ca0b6205f1880da15238d5110e3cc727d4b3937;hb=0231a4fe0d679b2959968193b0fbeebc44531aaf;hp=6a570fc9d122564dccfda8fdbabde83faa6c425c;hpb=83a329e3210a40f383282389a48a33ea34ccfa1f;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 6a570fc..4ca0b62 100644 --- a/0.6.x/js/06_net/01_XNetXHR.js +++ b/0.6.x/js/06_net/01_XNetXHR.js @@ -101,16 +101,9 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){ headers = obj[ 'headers' ] || {}, postbody = obj[ 'postbody' ], timeout = obj[ 'timeout' ] || 20000, - temp; + tmp; - if( obj[ 'type' ] ){ - this._type = obj[ 'type' ]; - } else { - temp = X_URL_cleanup( url ).split( '.' ); - if( 2 <= temp.length ){ - this._type = temp[ temp.length - 1 ].toLowerCase(); - }; - }; + this._type = obj[ 'type' ] || X_URL_getEXT( url ); if( X_Net_XHR_X_DOMAIN ){ if( X_URL_isSameDomain( url ) ){ // isXDomain @@ -159,12 +152,46 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){ }; // http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_1.html - // raw.overrideMimeType() + if( !X_Net_XHR_ACTIVE_X && X_Type_isFunction( raw.overrideMimeType ) ){ + switch( X_URL_getEXT( url ) ){ + case 'html' : + case 'xml' : + tmp = 'text/xml'; + break; + + case 'mp3' : + tmp = 'audio/mpeg'; + break; + case 'opus' : + case 'ogg' : + tmp = 'audio/ogg'; + break; + case 'wav' : + tmp = 'audio/wav'; + break; + case 'aac' : + tmp = 'audio/aac'; + break; + case 'm4a' : + tmp = 'audio/x-m4a"'; + break; + case 'mp4' : + tmp = 'audio/x-mp4'; + break; + case 'weba' : + tmp = 'audio/webm'; + break; + }; + if( obj[ 'mimeType' ] || tmp ) raw.overrideMimeType( obj[ 'mimeType' ] || tmp ); + console.log( this._type ); + console.log( obj[ 'mimeType' ] || tmp ); + }; + if( !X_Net_XHR_ACTIVE_X && X_Type_isFunction( raw.setRequestHeader ) ){ // http://nakigao.sitemix.jp/blog/?p=2040 // SafariでHTTP/412のエラー - headers[ 'If-Modified-Since' ] = ( new Date ).toUTCString(); + // headers[ 'If-Modified-Since' ] = ( new Date ).toUTCString(); for( p in headers ){ if( X_EMPTY_OBJECT[ p ] ) continue; @@ -263,10 +290,10 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){ case 1 : return; case 2 : // 0% ajaxstart - live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : 0 } ); + live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : 0 } ); return; case 3 : - live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : this._percent < 99.9 ? 99.9 : ( this._percent + 100 ) / 2 } ); + live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : this._percent < 99.9 ? 99.9 : ( this._percent + 100 ) / 2 } ); // 99.9% return; case 4 : @@ -333,14 +360,14 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){ this[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, data : data } ); } else { - live && this[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : raw.status || 0, percent : 100 } ); + live && this[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : raw.status || 0, 'percent' : 100 } ); }; break; case 'progress' : if( e.lengthComputable ){ this._percent = e.loaded / e.total; - live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : this._percent } ); + live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : this._percent } ); }; break;