1 <html><head><title>../roojs1/Roo/lib/Ajax.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
2 * Portions of this file are based on pieces of Yahoo User Interface Library
3 * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
4 * YUI licensed under the BSD License:
5 * http://developer.yahoo.net/yui/license.txt
6 * <script type="text/javascript">
10 </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
12 </span><span class="jsdoc-var">Roo.lib.Ajax </span><span class="jsdoc-syntax">= {
13 </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">) {
14 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
15 </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">;
16 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">){
17 </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">){
18 </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">)){
19 </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">);
23 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">){
24 </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">);
25 </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">;
26 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">;
30 </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">);
33 </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">) {
34 </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">) {
35 </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">]);
38 </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">;
39 </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">++) {
40 </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">];
41 </span><span class="jsdoc-var">disabled </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">;
42 </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">;
43 </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">;
45 </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">){
46 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.type</span><span class="jsdoc-syntax">)
48 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-one'</span><span class="jsdoc-syntax">:
49 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-multiple'</span><span class="jsdoc-syntax">:
50 </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">++) {
51 </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">) {
52 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
53 </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">;
55 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
56 </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">;
60 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
61 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'radio'</span><span class="jsdoc-syntax">:
62 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'checkbox'</span><span class="jsdoc-syntax">:
63 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.checked</span><span class="jsdoc-syntax">) {
64 </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">;
66 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
67 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'file'</span><span class="jsdoc-syntax">:
69 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">:
71 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'reset'</span><span class="jsdoc-syntax">:
73 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'button'</span><span class="jsdoc-syntax">:
75 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
76 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">:
77 </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">) {
78 </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">;
79 </span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
81 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
82 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
83 </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">;
84 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
88 </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);
89 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">;
92 </span><span class="jsdoc-var">headers</span><span class="jsdoc-syntax">:{},
94 </span><span class="jsdoc-var">hasHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
96 </span><span class="jsdoc-var">useDefaultHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
98 </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">,
100 </span><span class="jsdoc-var">useDefaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
102 </span><span class="jsdoc-var">defaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'XMLHttpRequest'</span><span class="jsdoc-syntax">,
104 </span><span class="jsdoc-var">hasDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
106 </span><span class="jsdoc-var">defaultHeaders</span><span class="jsdoc-syntax">:{},
108 </span><span class="jsdoc-var">poll</span><span class="jsdoc-syntax">:{},
110 </span><span class="jsdoc-var">timeout</span><span class="jsdoc-syntax">:{},
112 </span><span class="jsdoc-var">pollInterval</span><span class="jsdoc-syntax">:50,
114 </span><span class="jsdoc-var">transactionId</span><span class="jsdoc-syntax">:0,
116 </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">)
118 </span><span class="jsdoc-var">this.activeX.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
121 </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">)
123 </span><span class="jsdoc-var">this.useDefaultHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
126 </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">)
128 </span><span class="jsdoc-var">this.useDefaultXhrHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
131 </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">)
133 </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">)) {
134 </span><span class="jsdoc-var">this.pollInterval </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
138 </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">)
140 </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">;
141 </span><span class="jsdoc-keyword">try
142 </span><span class="jsdoc-syntax">{
144 </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">();
146 </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">};
148 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
150 </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">) {
151 </span><span class="jsdoc-keyword">try
152 </span><span class="jsdoc-syntax">{
154 </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">]);
156 </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">};
157 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
159 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
163 </span><span class="jsdoc-keyword">finally
164 </span><span class="jsdoc-syntax">{
165 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
169 </span><span class="jsdoc-var">getConnectionObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
171 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
172 </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">;
174 </span><span class="jsdoc-keyword">try
175 </span><span class="jsdoc-syntax">{
176 </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">);
177 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
178 </span><span class="jsdoc-var">this.transactionId</span><span class="jsdoc-syntax">++;
181 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
183 </span><span class="jsdoc-keyword">finally
184 </span><span class="jsdoc-syntax">{
185 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
189 </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">)
191 </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">();
193 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
194 </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
196 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
197 </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">);
199 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.useDefaultXhrHeader</span><span class="jsdoc-syntax">) {
200 </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">]) {
201 </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">);
205 </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">){
206 </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">);
209 </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">) {
210 </span><span class="jsdoc-var">this.setHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
213 </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">);
214 </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">);
216 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
220 </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">)
222 </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">;
224 </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">) {
225 </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">() {
226 </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">);
227 }, </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">);
230 </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">(
231 </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
232 </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) {
233 </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">]);
234 </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">];
236 </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">) {
237 </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">]);
238 </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">];
241 </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">);
244 , </span><span class="jsdoc-var">this.pollInterval</span><span class="jsdoc-syntax">);
247 </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">)
250 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
251 </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
252 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
255 </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">;
257 </span><span class="jsdoc-keyword">try
258 </span><span class="jsdoc-syntax">{
259 </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) {
260 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.status</span><span class="jsdoc-syntax">;
262 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
263 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
266 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
269 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
272 </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) {
273 </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">);
274 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">) {
275 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
276 </span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
278 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
281 </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">]);
285 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
286 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">httpStatus</span><span class="jsdoc-syntax">) {
288 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12002:
289 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12029:
290 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12030:
291 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12031:
292 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12152:
293 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13030:
294 </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">));
295 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
296 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
297 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
299 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
300 </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">]);
303 </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
304 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
305 </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">);
306 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
307 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
308 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
310 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
311 </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">]);
317 </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
318 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
321 </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">)
323 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
324 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerObj </span><span class="jsdoc-syntax">= {};
326 </span><span class="jsdoc-keyword">try
327 </span><span class="jsdoc-syntax">{
328 </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">();
329 </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">);
330 </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">++) {
331 </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">);
332 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">!= -1) {
333 </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);
337 </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
340 </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">;
341 </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">;
342 </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">;
343 </span><span class="jsdoc-var">obj.getResponseHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">;
344 </span><span class="jsdoc-var">obj.getAllResponseHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerStr</span><span class="jsdoc-syntax">;
345 </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">;
346 </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">;
348 </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">) {
349 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
352 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
355 </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">)
357 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">COMM_CODE </span><span class="jsdoc-syntax">= 0;
358 </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">;
359 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ABORT_CODE </span><span class="jsdoc-syntax">= -1;
360 </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">;
362 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
364 </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">;
365 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">) {
366 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_CODE</span><span class="jsdoc-syntax">;
367 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_ERROR</span><span class="jsdoc-syntax">;
369 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
370 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_CODE</span><span class="jsdoc-syntax">;
371 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_ERROR</span><span class="jsdoc-syntax">;
374 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">) {
375 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
378 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
381 </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">)
383 </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">;
385 </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">) {
386 </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">;
388 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
391 </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">];
394 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">) {
395 </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
397 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
398 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
403 </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">)
405 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasDefaultHeaders</span><span class="jsdoc-syntax">) {
406 </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">) {
407 </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">)) {
408 </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">]);
413 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasHeaders</span><span class="jsdoc-syntax">) {
414 </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">) {
415 </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">)) {
416 </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">]);
419 </span><span class="jsdoc-var">this.headers </span><span class="jsdoc-syntax">= {};
420 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
424 </span><span class="jsdoc-var">resetDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
425 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">;
426 </span><span class="jsdoc-var">this.defaultHeaders </span><span class="jsdoc-syntax">= {};
427 </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
430 </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">)
432 </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">)) {
433 </span><span class="jsdoc-var">o.conn.abort</span><span class="jsdoc-syntax">();
434 </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">]);
435 </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">];
436 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isTimeout</span><span class="jsdoc-syntax">) {
437 </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">];
440 </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">);
442 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
444 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
445 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
450 </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">)
452 </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">) {
453 </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;
455 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
457 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
462 </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">)
465 </span><span class="jsdoc-var">o.conn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
467 </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
470 </span><span class="jsdoc-var">activeX</span><span class="jsdoc-syntax">:[
471 </span><span class="jsdoc-string">'MSXML2.XMLHTTP.3.0'</span><span class="jsdoc-syntax">,
472 </span><span class="jsdoc-string">'MSXML2.XMLHTTP'</span><span class="jsdoc-syntax">,
473 </span><span class="jsdoc-string">'Microsoft.XMLHTTP'
474 </span><span class="jsdoc-syntax">]
478 })();</span></code></body></html>