X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F06_net%2F01_XNetXHR.js;fp=0.6.x%2Fjs%2F06_net%2F01_XNetXHR.js;h=2d5f3b76993ab56cf3f91460559455bb7ea149a0;hp=4875e7e30d2c7c267268f70b0313a39b8f2d2de5;hb=2bea17ee282c2cf4ce0de6685db3ade602f6e60f;hpb=76ea1040608829b653422cf51b3490801d2ec1fa diff --git a/0.6.x/js/06_net/01_XNetXHR.js b/0.6.x/js/06_net/01_XNetXHR.js index 4875e7e..2d5f3b7 100644 --- a/0.6.x/js/06_net/01_XNetXHR.js +++ b/0.6.x/js/06_net/01_XNetXHR.js @@ -475,15 +475,15 @@ if( X_XHR_w3c || X_XHR_msXML ){ switch( X_XHR._dataType ){ case '' : case 'text' : - data = raw[ 'responseText' ]; + data = X_Script_try( X_Object_find, [ raw, 'responseText' ] ); break; case 'json' : case 'moz-json' : - data = raw[ 'response' ] || raw[ 'responseText' ]; + data = X_Script_try( X_Object_find, [ raw, 'response' ] ) || X_Script_try( X_Object_find, [ raw, 'responseText' ] ); // eval() を使っているけど JSON の無いブラウザは XDomain な XHR はできないのでよしとする。 // XDomain な XHR の際は Flash 等で代替し、その中に Json parser も組み込む。 // http://d.hatena.ne.jp/sshi/20060904/p1 - if( !X_Type_isObject( data ) ) data = X_JSON_parseTrustableString( data ); + if( X_Type_isString( data ) ) data = X_JSON_parseTrustableString( data ); break; case 'document' : case 'xml' : @@ -499,6 +499,9 @@ if( X_XHR_w3c || X_XHR_msXML ){ data = raw[ 'response' ] || raw[ 'responseText' ]; // とりあえず break; }; + }; + + if( data ){ X_XHR[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, response : data, 'headers' : headers || null } ); } else { X_XHR[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : status || 400, 'headers' : headers || null } );