// ie7&8 ではローカルリソースには ActiveX の XHR を使う\r
X_Net_XHR_createW3C = window[ 'XMLHttpRequest' ] && function(){ return X_Net_XHR_w3c || ( X_Net_XHR_w3c = new XMLHttpRequest() ); },\r
X_Net_XHR_w3c = X_Net_XHR_createW3C && X_Net_XHR_createW3C(),\r
+ X_Net_XHR_cors = X_Net_XHR_w3c && X_Net_XHR_w3c.withCredentials !== undefined,\r
X_Net_XHR_progress = X_Net_XHR_w3c && X_Net_XHR_w3c.onprogress !== undefined,\r
X_Net_XHR_upload = X_Net_XHR_w3c && !!X_Net_XHR_w3c.upload,\r
\r
'UPLOAD_PROGRESS' : X_Net_XHR_upload,\r
\r
// or gadget proxy or flash\r
- 'CORS' : X_Net_XHR_xdr || ( X_Net_XHR_w3c && X_Net_XHR_w3c.withCredentials !== undefined )\r
+ 'CORS' : X_Net_XHR_xdr || X_Net_XHR_cors\r
};\r
\r
if( X_Net_XHR_msXMLVer ) X[ 'XHR' ][ 'MSXML_VERSION' ] = X_Net_XHR_msXMLVer;\r
init,\r
tmp;\r
\r
- this._dataType = obj[ 'dataType' ] || X_URL_getEXT( url );\r
+ this._dataType = obj[ 'dataType' ];\r
\r
if( !raw || xDomain !== this._isXDR || ( X_Net_XHR_createMSXML && isFile !== this._isMsXML ) ){\r
raw && this[ 'unlisten' ]( [ 'load', 'readystatechange', 'progress', 'error', 'timeout' ] );\r
init = true;\r
this[ '_rawObject' ] = raw = xDomain ?\r
- X_Net_XHR_createXDR() :\r
+ ( X_Net_XHR_cors ?\r
+ X_Net_XHR_createW3C() :\r
+ X_Net_XHR_createXDR()\r
+ ) :\r
isFile ?\r
( X_Net_XHR_createMSXML ?\r
( X_Net_XHR_msXML = X_Net_XHR_msXML || X_Net_XHR_createMSXML() ):\r
raw.responseType = 'text';\r
break;\r
case 'json' :\r
- case 'moz-json' :\r
+ case 'moz-json' : // firefox9-\r
raw.responseType = X_UA[ 'Gecko' ] ? this._dataType : ''; // Iron 37 でエラー\r
break;\r
case 'document' :\r
\r
for( p in headers ){\r
if( X_EMPTY_OBJECT[ p ] ) continue;\r
+ console.log( headers[ p ] );\r
headers[ p ] !== undefined && raw.setRequestHeader( p, headers[ p ] + '' ); // Opera8.01+, MSXML3+\r
};\r
};\r
// eval() を使っているけど JSON の無いブラウザは XDomain な XHR はできないのでよしとする。\r
// XDomain な XHR の際は Flash 等で代替し、その中に Json parser も組み込む。\r
// http://d.hatena.ne.jp/sshi/20060904/p1\r
- if( !X_Type_isObject( data ) ) data = window.JSON ? JSON.parse( data ) : eval( '(' + data + ')' );\r
+ if( !X_Type_isObject( data ) ) data = X_String_parseTrustedJsonString( data );\r
break;\r
case 'document' :\r
case 'xml' :\r