OSDN Git Service

Version 0.6.209, bug fixes X.Net.* & X.URL.
[pettanr/clientJs.git] / 0.6.x / js / 06_net / 01_XNetXHR.js
index 4875e7e..2d5f3b7 100644 (file)
@@ -475,15 +475,15 @@ if( X_XHR_w3c || X_XHR_msXML ){
                                                        switch( X_XHR._dataType ){\r
                                                                case '' :\r
                                                                case 'text' :\r
-                                                                       data = raw[ 'responseText' ];\r
+                                                                       data = X_Script_try( X_Object_find, [ raw, 'responseText' ] );\r
                                                                        break;\r
                                                                case 'json' :\r
                                                                case 'moz-json' :\r
-                                                                       data = raw[ 'response' ] || raw[ 'responseText' ];\r
+                                                                       data = X_Script_try( X_Object_find, [ raw, 'response' ] ) || X_Script_try( X_Object_find, [ raw, 'responseText' ] );\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 = X_JSON_parseTrustableString( data );\r
+                                                                       if( X_Type_isString( data ) ) data = X_JSON_parseTrustableString( data );\r
                                                                        break;\r
                                                                case 'document' :\r
                                                                case 'xml' :\r
@@ -499,6 +499,9 @@ if( X_XHR_w3c || X_XHR_msXML ){
                                                                        data = raw[ 'response' ] || raw[ 'responseText' ]; // とりあえず\r
                                                                        break;\r
                                                        };\r
+                                               };\r
+                                               \r
+                                               if( data ){\r
                                                        X_XHR[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, response : data, 'headers' : headers || null } );\r
                                                } else {\r
                                                        X_XHR[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : status || 400, 'headers' : headers || null } );\r