if( obj[ 'type' ] ){\r
this._type = obj[ 'type' ];\r
} else {\r
- temp = url.split( '#' )[ 0 ].split( '?' )[ 0 ].split( '.' );\r
+ temp = X_URL_cleanup( url ).split( '.' );\r
if( 2 <= temp.length ){\r
this._type = temp[ temp.length - 1 ].toLowerCase();\r
};\r
};\r
\r
- // TODO ie7 http://127.0.0.1 に対しては ActiveX を使う, onerror は不可\r
- \r
if( X_Net_XHR_X_DOMAIN ){\r
- if( false /* isXDomain( url ) */ ){ // isXDomain\r
- if( !this._isXDR ){\r
+ if( X_URL_isSameDomain( url ) ){ // isXDomain\r
+ if( this._isXDR ){\r
X_EventDispatcher_toggleAllEvents( this, false );\r
- this._rawObject = X_Net_XHR_X_DOMAIN;\r
+ this._rawObject = X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X;\r
X_EventDispatcher_toggleAllEvents( this, true );\r
- this._isXDR = true;\r
+ this._isXDR = false; \r
};\r
} else {\r
- if( this._isXDR ){\r
+ if( !this._isXDR ){\r
X_EventDispatcher_toggleAllEvents( this, false );\r
- this._rawObject = X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X;\r
+ this._rawObject = X_Net_XHR_X_DOMAIN;\r
X_EventDispatcher_toggleAllEvents( this, true );\r
- this._isXDR = false;\r
+ this._isXDR = true; \r
};\r
};\r
};\r
switch( this._type ){\r
case '' :\r
case 'text' :\r
+ // js, css\r
raw.responseType = 'text';\r
break;\r
case 'json' :\r
case 'moz-json' :\r
+ raw.responseType = this._type;\r
break;\r
case 'document' :\r
case 'xml' :\r
case 'html' :\r
case 'htm' :\r
+ // svg\r
raw.responseType = 'document';\r
break;\r
case 'blob' :\r
case 'arraybuffer' :\r
+ // jpeg,jpg,png,gif,mp3,ogg...\r
raw.responseType = this._type;\r
break;\r
};\r
// send 前にフラグを立てる,回線が早いと raw.send() 内で onload -> _busy = false ののち、 _busy = true するため。\r
this._busy = true;\r
\r
+ \r
+ \r
// http://allabout.co.jp/gm/gc/24097/#1\r
// sendをonreadystatechangeの前に記述すると、ieでは動作しなくなります、、、。\r
// konquerorでエラーが発生するのでここでは、とりあえず、send('') としました。\r
// https://code.google.com/p/fakeworker-js/source/browse/src/javascript/fakeworker.js\r
if(\r
( !status && location.protocol === 'file:' ) ||\r
- ( 200 <= status && status < 300 ) ||\r
- status === 304 ||\r
+ // IE 6.0 でローカルファイルにアクセスした\r
+ ( status < 100 ) ||\r
+ ( 200 <= status && status < 400 ) ||\r
+ //status === 304 ||\r
status === 1223 ||\r
( X_UA.Webkit && status === undefined ) // safari: /webkit/.test(userAgent)\r
){\r