http://tkengo-totoro.blogspot.jp/2011/11/iexmlhttprequest.html\r
TODO クライアント側にもリトライ機構を入れてみる\r
\r
+\r
+TODO xml の取得には XMLDOM を使用する\r
+var activex = JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP; // IXMLHttpRequest\r
+if ( this.method == "GET" && ! this.textmode ) {\r
+ // use IXMLDOMElement to accept any mime types\r
+ // because overrideMimeType() is not available on IE6\r
+ activex = JKL.ParseXML.HTTP.ACTIVEX_XMLDOM; // IXMLDOMElement\r
+};\r
+// debug.print( "new ActiveXObject( '"+activex+"' )" );\r
+this.req = new ActiveXObject( activex );\r
+\r
*/\r
var // Opera7.6+, Safari1.2+, khtml3.?+, Gecko0.9.7+\r
// ie9- ではローカルリソースには MSXML を使う\r
* http://hakuhin.jp/as/javascript.html\r
* Flash から JavaScript にアクセスする(3+)\r
*/\r
- 'FLASH' : X_Pulgin_FLASH_ENABLED && 4 <= X_Pulgin_FLASH_VERSION ? 8 : 0,\r
+ 'FLASH' : 4 <= X_Pulgin_FLASH_VERSION ? 8 : 0,\r
\r
'GADGET' : 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ] ? 16 : 0,\r
\r
headers = { 'Content-Type' : raw.contentType };\r
} else\r
if( ( X_XHR._isMsXML ? 3 <= X_XHR_msXMLVer : raw.setRequestHeader ) && ( headers = raw.getAllResponseHeaders() ) ){\r
- headers = X_NET_XHR_parseResponseHeaders( headers );\r
+ headers = X_XHR_parseResponseHeaders( headers );\r
};\r
\r
// https://code.google.com/p/fakeworker-js/source/browse/src/javascript/fakeworker.js\r
break;\r
};\r
},\r
- \r
+\r
+/*\r
+ * http://www.kawa.net/works/js/jkl/parsexml.html\r
+ * \r
+// ================================================================\r
+// method: documentElement()\r
+// return: XML DOM in response body\r
+\r
+JKL.ParseXML.HTTP.prototype.documentElement = function() {\r
+ // debug.print( "documentElement: "+this.req );\r
+ if ( ! this.req ) return;\r
+ if ( this.req.responseXML ) {\r
+ return this.req.responseXML.documentElement; // XMLHTTPRequest\r
+ } else {\r
+ return this.req.documentElement; // IXMLDOMDocument\r
+ }\r
+};\r
+\r
+// ================================================================\r
+// method: responseText()\r
+// return: text string in response body\r
+\r
+JKL.ParseXML.HTTP.prototype.responseText = function() {\r
+ // debug.print( "responseText: "+this.req );\r
+ if ( ! this.req ) return;\r
+\r
+ // Safari and Konqueror cannot understand the encoding of text files.\r
+ if ( navigator.appVersion.match( "KHTML" ) ) {\r
+ var esc = escape( this.req.responseText );\r
+// debug.print( "escape: "+esc );\r
+ if ( ! esc.match("%u") && esc.match("%") ) {\r
+ return decodeURIComponent(esc);\r
+ }\r
+ }\r
+\r
+ return this.req.responseText;\r
+};\r
+ */\r
+ \r
onTimeout : function(){\r
var raw = X_XHR[ '_rawObject' ],\r
live = !X_XHR._canceled || !X_XHR._busy;\r
* 複数の情報が存在する場合、改行で区切られています。\r
*/\r
\r
-function X_NET_XHR_parseResponseHeaders( headerStr ){\r
+function X_XHR_parseResponseHeaders( headerStr ){\r
var headers = {}, headerPairs, i = 0, l, headerPair, index, key, val;\r
\r
if( !headerStr ) return headers;\r