XMLHttpRequest advanced features

Adds more functionality to XHR (aka AJAX) requests like file uploads, transfer progress information and the ability to send form data. Previously known as XMLHttpRequest Level 2, these features now appear simply in the XMLHttpRequest spec.

Spec https://xhr.spec.whatwg.org/
Status WHATWG Living Standard
IE Edge Firefox Chrome Safari Opera
      103    
    100 102    
    99 101 TP  
11 (1) 99 98 100 15.4 83
10 (1) 98 97 99 15.2-15.3 82
9 97 96 98 15.1 81
8 96 95 97 15 80
Show all
7 95 94 96 14.1 79
6 94 93 95 14 78
5.5 93 92 94 13.1 77
  92 91 93 13 76
  91 90 92 12.1 75
  90 89 91 12 74
  89 88 90 11.1 73
  88 87 89 11 72
  87 86 88 10.1 71
  86 85 87 10 70
  85 84 86 9.1 69
  84 83 85 9 68
  83 82 84 8 67
  81 81 83 7.1 66
  80 80 81 7 (1) 65
  79 79 80 6.1 (1) 64
  18 78 79 6 (1,2) 63
  17 77 78 5.1 (1,2) 62
  16 76 77 5 (1,2) 60
  15 75 76 4 58
  14 74 75 3.2 57
  13 73 74 3.1 56
  12 72 73   55
    71 72   54
    70 71   53
    69 70   52
    68 69   51
    67 68   50
    66 67   49
    65 66   48
    64 65   47
    63 64   46
    62 63   45
    61 62   44
    60 61   43
    59 60   42
    58 59   41
    57 58   40
    56 57   39
    55 56   38
    54 55   37
    53 54   36
    52 53   35
    51 52   34
    50 51   33
    49 50   32
    48 49   31
    47 48   30
    46 47   29
    45 46   28
    44 45   27
    43 44   26
    42 43   25
    41 42   24
    40 41   23
    39 40   22
    38 39   21
    37 38   20
    36 37   19
    35 36   18
    34 35   17 (1)
    33 34   16 (1)
    32 33   15 (1)
    31 32   12.1
    30 31   12
    29 30 (1)   11.6
    28 29 (1)   11.5
    27 28 (1,2)   11.1
    26 27 (1,2)   11
    25 26 (1,2)   10.6
    24 25 (1,2)   10.5
    23 24 (1,2)   10.0-10.1
    22 23 (1,2)   9.5-9.6
    21 22 (1,2)   9
    20 21 (1,2)    
    19 20 (1,2)    
    18 19 (1,2)    
    17 18 (1,2)    
    16 17 (1,2)    
    15 16 (1,2)    
    14 15 (1,2)    
    13 14 (1,2)    
    12 13 (1,2)    
    11 (2) 12 (1,2)    
    10 (2) 11 (1,2)    
    9 (1,2) 10 (1,2)    
    8 (1,2) 9 (1,2)    
    7 (1,2) 8 (1,2)    
    6 (1,2) 7 (1,2)    
    5 (1,2,3) 6    
    4 (1,2,3) 5    
    3.6 (1,2,3) 4    
    3.5 (1,2,3)      
    3      
    2      
Safari on iOS Opera Mini Android Browser Blackberry Browser Opera Mobile Android Chrome Android Firefox IE Mobile Android UC Browser Samsung Internet QQ Browser Baidu Browser KaiOS Browser
15.4 all 99 10 (1) 64 100 98 11 (1) 12.12 16.0 10.4 7.12 2.5
15.2-15.3   4.4.3-4.4.4 7 (1,2) 12.1     10 (1)   15.0      
15.0-15.1   4.4 (1,2)   12         14.0      
14.5-14.8   4.2-4.3 (1,2,3)   11.5         13.0      
Show all
14.0-14.4   4.1 (1,2,3)   11.1         12.0      
13.4-13.7   4 (1,2,3)   11         11.1-11.2      
13.3   3 (1,2,3)   10         10.1      
13.2   2.3             9.2      
13.0-13.1   2.2             8.2      
12.2-12.5   2.1             7.2-7.4      
12.0-12.1                 6.2-6.4      
11.3-11.4                 5.0-5.4      
11.0-11.2                 4      
10.3                        
10.0-10.2                        
9.3                        
9.0-9.2                        
8.1-8.4                        
8                        
7.0-7.1 (1)                        
6.0-6.1 (1,2)                        
5.0-5.1 (1,2)                        
4.2-4.3                        
4.0-4.1                        
3.2                        

Notes

  1. Partial support refers to not supporting json as responseType

  2. Partial support refers to not supporting .timeout and .ontimeout

  3. Partial support refers to not supporting blob as responseType

Bugs

  • Firefox 3.5 and 3.6 partial support refers to only including support for the progress event.

  • WebKit versions 535 and older (r103502) do not implement the onloadend event

  • IE10 and 11 do not support synchronous requests, with support being phased out in other browsers too. This is due to detrimental effects resulting from making them.

  • The "progress" event is reported to not work in Chrome for iOS

  • In Internet Explorer the timeout property may only be set after calling open and before calling send.

Resources

Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
https://caniuse.com/xhr2