|
46 | 46 | return this; |
47 | 47 | }; |
48 | 48 |
|
| 49 | + Backendless.XMLHttpRequest = XMLHttpRequest; |
| 50 | + |
49 | 51 | if (!Array.prototype.indexOf) { |
50 | 52 | Array.prototype.indexOf = function(searchElement, fromIndex) { |
51 | 53 | var k; |
|
75 | 77 | }; |
76 | 78 | } |
77 | 79 |
|
78 | | - initXHR(); |
79 | | - |
80 | 80 | var browser = (function() { |
81 | 81 | var ua = 'NodeJS'; |
82 | 82 |
|
|
177 | 177 | } |
178 | 178 | }; |
179 | 179 |
|
180 | | - function initXHR() { |
181 | | - try { |
182 | | - if (typeof XMLHttpRequest.prototype.sendAsBinary == 'undefined') { |
183 | | - XMLHttpRequest.prototype.sendAsBinary = function(text) { |
184 | | - var data = new ArrayBuffer(text.length); |
185 | | - var ui8a = new Uint8Array(data, 0); |
186 | | - for (var i = 0; i < text.length; i++) { |
187 | | - ui8a[i] = (text.charCodeAt(i) & 0xff); |
188 | | - } |
189 | | - this.send(ui8a); |
190 | | - }; |
191 | | - } |
192 | | - } |
193 | | - catch (e) { |
| 180 | + Utils.stringToBiteArray = function(str) { |
| 181 | + var data = new ArrayBuffer(str.length); |
| 182 | + var ui8a = new Uint8Array(data, 0); |
| 183 | + for (var i = 0; i < str.length; i++) { |
| 184 | + ui8a[i] = (str.charCodeAt(i) & 0xff); |
194 | 185 | } |
195 | | - } |
| 186 | + |
| 187 | + return ui8a; |
| 188 | + }; |
196 | 189 |
|
197 | 190 | function tryParseJSON(s) { |
198 | 191 | try { |
|
275 | 268 | } |
276 | 269 | }, |
277 | 270 | sendRequest = function(config) { |
278 | | - var xhr = new XMLHttpRequest(), |
| 271 | + var xhr = new Backendless.XMLHttpRequest(), |
279 | 272 | contentType = config.data ? 'application/json' : 'application/x-www-form-urlencoded', |
280 | 273 | response; |
281 | 274 |
|
|
452 | 445 | return req.end(); |
453 | 446 | }; |
454 | 447 |
|
455 | | - Backendless._ajax = isBrowser ? Backendless._ajax_for_browser : Backendless._ajax_for_nodejs; |
| 448 | + Backendless._ajax = function(config){ |
| 449 | + return Backendless.XMLHttpRequest ? Backendless._ajax_for_browser(config) : Backendless._ajax_for_nodejs(config); |
| 450 | + }; |
456 | 451 |
|
457 | 452 | var getClassName = function() { |
458 | 453 | if (this.prototype && this.prototype.___class) { |
|
3375 | 3370 | var async = options.async; |
3376 | 3371 | var encoded = options.encoded; |
3377 | 3372 | var boundary = '-backendless-multipart-form-boundary-' + getNow(); |
3378 | | - var xhr = new XMLHttpRequest(); |
| 3373 | + var xhr = new Backendless.XMLHttpRequest(); |
3379 | 3374 |
|
3380 | 3375 | var badResponse = function (xhr) { |
3381 | 3376 | var result = {}; |
|
3425 | 3420 | }; |
3426 | 3421 | } |
3427 | 3422 |
|
3428 | | - if (encoded) { |
3429 | | - xhr.send(options.data); |
3430 | | - } else { |
3431 | | - xhr.sendAsBinary(getBuilder(options.fileName, options.data, boundary)); |
3432 | | - } |
| 3423 | + xhr.send(encoded ? options.data : Utils.stringToBiteArray(getBuilder(options.fileName, options.data, boundary))); |
3433 | 3424 |
|
3434 | 3425 | if (async) { |
3435 | 3426 | return xhr; |
|
0 commit comments