1 <html><head><title>Roo/lib/Ajax.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
3 <span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
4 </span><span class="jsdoc-comment">/**
7 * provide a simple Ajax request utility functions
9 * Portions of this file are based on pieces of Yahoo User Interface Library
10 * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
11 * YUI licensed under the BSD License:
12 * http://developer.yahoo.net/yui/license.txt
13 * <script type="text/javascript">
17 </span><span class="jsdoc-var">Roo.lib.Ajax </span><span class="jsdoc-syntax">= {
18 </span><span class="jsdoc-comment">/**
21 </span><span class="jsdoc-var">request </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
22 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
23 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options.headers</span><span class="jsdoc-syntax">;
24 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">){
25 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">){
26 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">)){
27 </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">], </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
31 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">){
32 </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Content-Type'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'text/xml'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
33 </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">;
34 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">;
38 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.asyncRequest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
40 </span><span class="jsdoc-comment">/**
44 * @param {DomForm} form element
45 * @return {String} urlencode form output.
47 </span><span class="jsdoc-var">serializeForm </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">include_disabled</span><span class="jsdoc-syntax">) {
49 </span><span class="jsdoc-var">include_disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">include_disabled</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">include_disabled</span><span class="jsdoc-syntax">;
51 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) {
52 </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">document.getElementById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">document.forms</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">]);
55 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">disabled</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
56 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">form.elements.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
57 </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
58 </span><span class="jsdoc-var">disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">include_disabled </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.disabled</span><span class="jsdoc-syntax">;
59 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.name</span><span class="jsdoc-syntax">;
60 </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value</span><span class="jsdoc-syntax">;
62 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">disabled </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
63 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.type</span><span class="jsdoc-syntax">)
65 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-one'</span><span class="jsdoc-syntax">:
66 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-multiple'</span><span class="jsdoc-syntax">:
67 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">el.options.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++) {
68 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.selected</span><span class="jsdoc-syntax">) {
69 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
70 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.attributes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.specified </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.text</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&'</span><span class="jsdoc-syntax">;
72 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
73 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.text</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&'</span><span class="jsdoc-syntax">;
77 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
78 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'radio'</span><span class="jsdoc-syntax">:
79 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'checkbox'</span><span class="jsdoc-syntax">:
80 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.checked</span><span class="jsdoc-syntax">) {
81 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&'</span><span class="jsdoc-syntax">;
83 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
84 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'file'</span><span class="jsdoc-syntax">:
86 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">:
88 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'reset'</span><span class="jsdoc-syntax">:
90 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'button'</span><span class="jsdoc-syntax">:
92 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
93 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">:
94 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
95 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&'</span><span class="jsdoc-syntax">;
96 </span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
98 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
99 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
100 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&'</span><span class="jsdoc-syntax">;
101 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
105 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">data.substr</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">data.length </span><span class="jsdoc-syntax">- 1);
106 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">;
109 </span><span class="jsdoc-var">headers</span><span class="jsdoc-syntax">:{},
111 </span><span class="jsdoc-var">hasHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
113 </span><span class="jsdoc-var">useDefaultHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
115 </span><span class="jsdoc-var">defaultPostHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'application/x-www-form-urlencoded'</span><span class="jsdoc-syntax">,
117 </span><span class="jsdoc-var">useDefaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
119 </span><span class="jsdoc-var">defaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'XMLHttpRequest'</span><span class="jsdoc-syntax">,
121 </span><span class="jsdoc-var">hasDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
123 </span><span class="jsdoc-var">defaultHeaders</span><span class="jsdoc-syntax">:{},
125 </span><span class="jsdoc-var">poll</span><span class="jsdoc-syntax">:{},
127 </span><span class="jsdoc-var">timeout</span><span class="jsdoc-syntax">:{},
129 </span><span class="jsdoc-var">pollInterval</span><span class="jsdoc-syntax">:50,
131 </span><span class="jsdoc-var">transactionId</span><span class="jsdoc-syntax">:0,
133 </span><span class="jsdoc-var">setProgId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">)
135 </span><span class="jsdoc-var">this.activeX.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
138 </span><span class="jsdoc-var">setDefaultPostHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">)
140 </span><span class="jsdoc-var">this.useDefaultHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
143 </span><span class="jsdoc-var">setDefaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">)
145 </span><span class="jsdoc-var">this.useDefaultXhrHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
148 </span><span class="jsdoc-var">setPollingInterval</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)
150 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">isFinite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)) {
151 </span><span class="jsdoc-var">this.pollInterval </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
155 </span><span class="jsdoc-var">createXhrObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transactionId</span><span class="jsdoc-syntax">)
157 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">;
158 </span><span class="jsdoc-keyword">try
159 </span><span class="jsdoc-syntax">{
161 </span><span class="jsdoc-var">http </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">XMLHttpRequest</span><span class="jsdoc-syntax">();
163 </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">transactionId </span><span class="jsdoc-syntax">};
165 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
167 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.activeX.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
168 </span><span class="jsdoc-keyword">try
169 </span><span class="jsdoc-syntax">{
171 </span><span class="jsdoc-var">http </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">ActiveXObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeX</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
173 </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">transactionId </span><span class="jsdoc-syntax">};
174 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
176 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
180 </span><span class="jsdoc-keyword">finally
181 </span><span class="jsdoc-syntax">{
182 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
186 </span><span class="jsdoc-var">getConnectionObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
188 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
189 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.transactionId</span><span class="jsdoc-syntax">;
191 </span><span class="jsdoc-keyword">try
192 </span><span class="jsdoc-syntax">{
193 </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createXhrObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">);
194 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
195 </span><span class="jsdoc-var">this.transactionId</span><span class="jsdoc-syntax">++;
198 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
200 </span><span class="jsdoc-keyword">finally
201 </span><span class="jsdoc-syntax">{
202 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
206 </span><span class="jsdoc-var">asyncRequest</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">postData</span><span class="jsdoc-syntax">)
208 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getConnectionObject</span><span class="jsdoc-syntax">();
210 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
211 </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
213 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
214 </span><span class="jsdoc-var">o.conn.open</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
216 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.useDefaultXhrHeader</span><span class="jsdoc-syntax">) {
217 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'X-Requested-With'</span><span class="jsdoc-syntax">]) {
218 </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'X-Requested-With'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultXhrHeader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
222 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">postData </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.useDefaultHeader</span><span class="jsdoc-syntax">){
223 </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Content-Type'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultPostHeader</span><span class="jsdoc-syntax">);
226 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.hasHeaders</span><span class="jsdoc-syntax">) {
227 </span><span class="jsdoc-var">this.setHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
230 </span><span class="jsdoc-var">this.handleReadyState</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
231 </span><span class="jsdoc-var">o.conn.send</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">postData </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
233 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
237 </span><span class="jsdoc-var">handleReadyState</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">)
239 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oConn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
241 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">) {
243 </span><span class="jsdoc-var">this.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">window.setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
244 </span><span class="jsdoc-var">oConn.abort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
245 }, </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">);
248 </span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">window.setInterval</span><span class="jsdoc-syntax">(
249 </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
250 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.conn </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">== 4) {
251 </span><span class="jsdoc-var">window.clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oConn.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
252 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">oConn.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
254 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">) {
255 </span><span class="jsdoc-var">window.clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oConn.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
256 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">oConn.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
259 </span><span class="jsdoc-var">oConn.handleTransactionResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
262 , </span><span class="jsdoc-var">this.pollInterval</span><span class="jsdoc-syntax">);
265 </span><span class="jsdoc-var">handleTransactionResponse</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">)
268 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
269 </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
270 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
273 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">httpStatus</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">;
275 </span><span class="jsdoc-keyword">try
276 </span><span class="jsdoc-syntax">{
277 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.conn.status </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">o.conn.status </span><span class="jsdoc-syntax">!= 0) {
278 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.status</span><span class="jsdoc-syntax">;
280 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
281 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
284 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
287 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
290 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">>= 200 && </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">< 300) {
291 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createResponseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">);
292 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">) {
293 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
294 </span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
296 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
299 </span><span class="jsdoc-var">callback.success.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
303 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
304 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">httpStatus</span><span class="jsdoc-syntax">) {
306 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12002:
307 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12029:
308 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12030:
309 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12031:
310 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12152:
311 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13030:
312 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createExceptionObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">isAbort </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">isAbort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">));
313 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
314 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
315 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
317 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
318 </span><span class="jsdoc-var">callback.failure.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
321 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
322 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
323 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createResponseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">);
324 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
325 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
326 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
328 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
329 </span><span class="jsdoc-var">callback.failure.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
335 </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
336 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
339 </span><span class="jsdoc-var">createResponseObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">)
341 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
342 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerObj </span><span class="jsdoc-syntax">= {};
344 </span><span class="jsdoc-keyword">try
345 </span><span class="jsdoc-syntax">{
346 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerStr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.getAllResponseHeaders</span><span class="jsdoc-syntax">();
347 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerStr.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">);
348 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">header.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
349 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">':'</span><span class="jsdoc-syntax">);
350 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">!= -1) {
351 </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">delimitPos</span><span class="jsdoc-syntax">)] = </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">+ 2);
355 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
358 </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">;
359 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.status</span><span class="jsdoc-syntax">;
360 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.statusText</span><span class="jsdoc-syntax">;
361 </span><span class="jsdoc-var">obj.getResponseHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">;
362 </span><span class="jsdoc-var">obj.getAllResponseHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerStr</span><span class="jsdoc-syntax">;
363 </span><span class="jsdoc-var">obj.responseText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.responseText</span><span class="jsdoc-syntax">;
364 </span><span class="jsdoc-var">obj.responseXML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.responseXML</span><span class="jsdoc-syntax">;
366 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callbackArg </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">) {
367 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
370 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
373 </span><span class="jsdoc-var">createExceptionObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">)
375 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">COMM_CODE </span><span class="jsdoc-syntax">= 0;
376 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">COMM_ERROR </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'communication failure'</span><span class="jsdoc-syntax">;
377 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ABORT_CODE </span><span class="jsdoc-syntax">= -1;
378 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ABORT_ERROR </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'transaction aborted'</span><span class="jsdoc-syntax">;
380 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
382 </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">;
383 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">) {
384 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_CODE</span><span class="jsdoc-syntax">;
385 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_ERROR</span><span class="jsdoc-syntax">;
387 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
388 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_CODE</span><span class="jsdoc-syntax">;
389 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_ERROR</span><span class="jsdoc-syntax">;
392 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">) {
393 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
396 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
399 </span><span class="jsdoc-var">initHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">)
401 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerObj </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.defaultHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">;
403 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] === </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">) {
404 </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
406 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
409 </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"," </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">];
412 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">) {
413 </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
415 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
416 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
421 </span><span class="jsdoc-var">setHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
423 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasDefaultHeaders</span><span class="jsdoc-syntax">) {
424 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prop </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">) {
425 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultHeaders.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">)) {
426 </span><span class="jsdoc-var">o.conn.setRequestHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">]);
431 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasHeaders</span><span class="jsdoc-syntax">) {
432 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prop </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">) {
433 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headers.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">)) {
434 </span><span class="jsdoc-var">o.conn.setRequestHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">]);
437 </span><span class="jsdoc-var">this.headers </span><span class="jsdoc-syntax">= {};
438 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
442 </span><span class="jsdoc-var">resetDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
443 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">;
444 </span><span class="jsdoc-var">this.defaultHeaders </span><span class="jsdoc-syntax">= {};
445 </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
448 </span><span class="jsdoc-var">abort</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isTimeout</span><span class="jsdoc-syntax">)
450 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isCallInProgress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)) {
451 </span><span class="jsdoc-var">o.conn.abort</span><span class="jsdoc-syntax">();
452 </span><span class="jsdoc-var">window.clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
453 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
454 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isTimeout</span><span class="jsdoc-syntax">) {
455 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
458 </span><span class="jsdoc-var">this.handleTransactionResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
460 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
462 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
463 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
468 </span><span class="jsdoc-var">isCallInProgress</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
470 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">o.conn</span><span class="jsdoc-syntax">) {
471 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">!= 4 && </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">!= 0;
473 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
475 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
480 </span><span class="jsdoc-var">releaseObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
483 </span><span class="jsdoc-var">o.conn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
485 </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
488 </span><span class="jsdoc-var">activeX</span><span class="jsdoc-syntax">:[
489 </span><span class="jsdoc-string">'MSXML2.XMLHTTP.3.0'</span><span class="jsdoc-syntax">,
490 </span><span class="jsdoc-string">'MSXML2.XMLHTTP'</span><span class="jsdoc-syntax">,
491 </span><span class="jsdoc-string">'Microsoft.XMLHTTP'
492 </span><span class="jsdoc-syntax">]
496 })();</span></code></body></html>