|  | <!doctype html> | 
|  | <html> | 
|  | <head> | 
|  | <title>XMLHttpRequest: send() - non-empty data argument and GET/HEAD</title> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::OL[1]/LI[3] following::OL[1]/LI[7]" /> | 
|  |  | 
|  | </head> | 
|  | <body> | 
|  | <div id="log"></div> | 
|  | <script> | 
|  | function request(method) { | 
|  | test(function() { | 
|  | var events=[] | 
|  | var logEvt = function (e) { | 
|  | events.push(e.type) | 
|  | } | 
|  | var client = new XMLHttpRequest() | 
|  | client.open(method, "resources/content.py", false) | 
|  | client.send("TEST") | 
|  | client.upload.addEventListener('progress', logEvt) | 
|  | client.upload.addEventListener('loadend', logEvt) | 
|  | client.upload.addEventListener('loadstart', logEvt) | 
|  |  | 
|  | if (method === "HEAD") { | 
|  | // Fetch 4.4.3 --- Set Content-Length to 0 if method is HEAD and | 
|  | // request's body is null. | 
|  | assert_equals(client.getResponseHeader("x-request-content-length"), "0") | 
|  | } else { | 
|  | assert_equals(client.getResponseHeader("x-request-content-length"), "NO") | 
|  | } | 
|  | assert_equals(client.getResponseHeader("x-request-method"), method) | 
|  | assert_equals(client.responseText, "") | 
|  | assert_array_equals(events, []) | 
|  | }, document.title + " (" + method + ")") | 
|  | } | 
|  | request("GET") | 
|  | request("HEAD") | 
|  | </script> | 
|  | </body> | 
|  | </html> |