<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang="en">
 <head>
  <title>setRequestHeader</title>
 </head>
 <body>
  <p>Script did not run.</p>
  <script type="text/javascript">
   if (window.layoutTestController)
     layoutTestController.dumpAsText();

   var p = document.getElementsByTagName('p')[0];
   p.firstChild.data = 'Test script started.';
   window.onerror = function (error, file, line) { p.firstChild.data = 'ERROR: ' + error + ' (line ' + line + ')'; }
   // window.XMLHttpRequest = function () { return new ActiveXObject("Microsoft.XMLHTTP"); }
   var r = new XMLHttpRequest();
   r.onreadystatechange = function () {
     if (r.readyState == 4)
       p.firstChild.data = r.responseText;
     else
       p.firstChild.data = 'Test in progress (' + r.readyState + '/4)';
   };
   r.open('GET', '001-test.cgi', true);
   r.setRequestHeader('X-Test-Header', 'Test');
   r.send(null);
   p.firstChild.data = 'Request sent...';
  </script>
 </body>
</html>
