OSDN Git Service

Version 0.6.217, add #switch for X.Audio.
[pettanr/clientJs.git] / 0.6.x / js / 06_net / 01_XNetXHR.js
index 13ee2f9..746f5a3 100644 (file)
@@ -84,8 +84,8 @@ var // Opera7.6+, Safari1.2+, khtml3.?+, Gecko0.9.7+
 if( X_XHR_createMSXML ){\r
        ( function(){\r
                var x = '.XMLHTTP',\r
-                       m = 'MSXML2' + x,\r
-                       n = [ m + ".6.0", m + ".3.0", m + ".5.0", m + ".4.0", m, "Microsoft" + x ],\r
+                       m = 'Msxml2' + x,\r
+                       n = [ m + '.6.0', m + '.3.0', m + '.5.0', m + '.4.0', m, 'Microsoft' + x ],\r
                        v = [ 6, 3, 5, 4, 2, 1 ],\r
                        i = -1,\r
                        a;\r
@@ -114,7 +114,7 @@ X[ 'XHR' ] = {
  * http://hakuhin.jp/as/javascript.html\r
  * Flash から JavaScript にアクセスする(3+)\r
  */\r
-       'FLASH'       : 4 <= X_Pulgin_FLASH_VERSION ? 8 : 0,\r
+       'FLASH'       : 4 <= X_Plugin_FLASH_VERSION ? 8 : 0,\r
        \r
        'GADGET'      : 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ] ? 16 : 0,\r
 \r
@@ -228,8 +228,7 @@ if( X_XHR_w3c || X_XHR_msXML ){
                                \r
                                // http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_1.html\r
                                if( !X_XHR._isMsXML && raw.overrideMimeType ){\r
-                                       type = X_URL_getEXT( url ) || dataType;\r
-                                       switch( type ){\r
+                                       switch( type = dataType ){\r
                                                case 'html' :\r
                                                case 'htm' :\r
                                                case 'xml' :\r
@@ -399,7 +398,7 @@ if( X_XHR_w3c || X_XHR_msXML ){
                                        2: リクエストを受信した\r
                                        3: リクエストの処理中\r
                                        4: リクエストは終了してレスポンスの準備が完了\r
-                                       status  200: "OK"\r
+                                       status  200: 'OK'\r
                                        404: Page not found\r
                                        \r
                                        If-Modified-Sinceヘッダを利用してWebページのキャッシュを行うXMLHttpRequestラッパー\r
@@ -475,15 +474,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 +498,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
@@ -535,7 +537,7 @@ if( X_XHR_w3c || X_XHR_msXML ){
 //  return: XML DOM in response body\r
 \r
 JKL.ParseXML.HTTP.prototype.documentElement = function() {\r
-    // debug.print( "documentElement: "+this.req );\r
+    // debug.print( 'documentElement: '+this.req );\r
     if ( ! this.req ) return;\r
     if ( this.req.responseXML ) {\r
         return this.req.responseXML.documentElement;    // XMLHTTPRequest\r