10
10
//
11
11
// Copyright (C) 2017 Potix Corporation. All Rights Reserved.
12
12
import 'dart:async' ;
13
- import 'dart:html' ;
13
+ import 'dart:js_interop' ;
14
+ import 'package:web/web.dart' ;
14
15
15
16
import 'package:logging/logging.dart' ;
16
17
import 'package:socket_io_client/src/engine/transport.dart' ;
@@ -23,7 +24,7 @@ bool _hasXHR2() {
23
24
try {
24
25
// Dart's HttpRequest doesn't expose a direct way to check for XHR2 features,
25
26
// but attempting to use features like setting `responseType` could serve as a proxy.
26
- final xhr = HttpRequest ();
27
+ final xhr = XMLHttpRequest ();
27
28
xhr.responseType =
28
29
'arraybuffer' ; // Attempting to set a responseType supported by XHR2
29
30
return true ;
@@ -280,9 +281,9 @@ class Request extends EventEmitter {
280
281
late Map opts;
281
282
late String method;
282
283
late String uri;
283
- late dynamic data;
284
+ late String ? data;
284
285
285
- HttpRequest ? xhr;
286
+ XMLHttpRequest ? xhr;
286
287
int ? index;
287
288
StreamSubscription ? readyStateChange;
288
289
@@ -311,12 +312,12 @@ class Request extends EventEmitter {
311
312
};
312
313
opts['xdomain' ] = this .opts['xd' ] ?? false ;
313
314
314
- var xhr = this .xhr = HttpRequest ();
315
+ var xhr = this .xhr = XMLHttpRequest ();
315
316
var self = this ;
316
317
317
318
try {
318
319
_logger.fine ('xhr open $method : $uri ' );
319
- xhr.open (method, uri, async : true );
320
+ xhr.open (method, uri, true );
320
321
321
322
try {
322
323
if (this .opts.containsKey ('extraHeaders' ) &&
@@ -371,7 +372,7 @@ class Request extends EventEmitter {
371
372
});
372
373
373
374
_logger.fine ('xhr data $data ' );
374
- xhr.send (data);
375
+ xhr.send (data? . jsify () );
375
376
} catch (e) {
376
377
// Need to defer since .create() is called directly fhrom the constructor
377
378
// and thus the 'error' event can only be only bound *after* this exception
@@ -419,7 +420,7 @@ class Request extends EventEmitter {
419
420
/// @api private
420
421
void onLoad () {
421
422
final data = xhr! .responseText;
422
- if (data != null ) {
423
+ if (data.isNotEmpty ) {
423
424
emitReserved ('data' , data);
424
425
emitReserved ('success' );
425
426
cleanup ();
0 commit comments