setRequestHeader method

Adds custom HTTP headers to the request.

Syntax

object.setRequestHeader(bstrHeader, bstrValue);

Parameters

  • bstrHeader [in]
    Type: BSTR

    BSTR that specifies the header name.

  • bstrValue [in]
    Type: BSTR

    BSTR that specifies the header value.

Return value

This method does not return a value.

Standards information

Remarks

Refer to RFC2616, Section 14: Header Field Definitions for a general list of standard headers. The server is ultimately responsible for honoring the headers of the request. By far the most common request header is Content-Type, which is required by some XML Web services.

IHTMLXMLHttpRequest::setRequestHeader was introduced in Windows Internet Explorer 7.

Examples

This example lets you load and display sections of a file. The example should be run on a server (localhost is fine).

<!DOCTYPE html>
<html >
  <head>
    <title>setRequestHeader example</title>

  </head>
  <body>
    <div>Enter a file, start and end point of a range. </div><br />
  
    <label>Start Range: <input id="startRange" placeholder="Type a place to start" /></label><br />
    <label>End Range: <input id="endRange" placeholder="Type a place to end"/></label><br />
    <label>File: <input id="filename" placeholder="Type a text file" /></label><br />
    <button id="getFile">Get file</button><br />
    <div id="output" style="display:block; overflow:auto; max-width:800px"></div>
        
    <!-- Put script below HTML to ensure elements are loaded --> 
    <script>
      //  Get data from the HTML elements 
      document.getElementById("getFile").addEventListener("click", function () {
        var url = document.getElementById("filename").value.toString();
        var range = document.getElementById("startRange").value.toString();
        range += "-" + document.getElementById("endRange").value.toString();
        getData(url, range);
      }, false);

          // Get data from file  
      function getData(url, range) {
        if (url !== "") {
          var xhr = new XMLHttpRequest(); // Set up xhr request
          xhr.open("GET", url, true);   // Open the request
          xhr.responseType = "text";   // Set the type of response expected
          // If there's a range set, create a request header to limit to that range
          if (range !== undefined && range !== null && range.length > 0) {
            xhr.setRequestHeader("Range", "bytes=" + range);
          }
          xhr.send();

          //  Asynchronously wait for the data to return
          xhr.onreadystatechange = function () {
            if (xhr.readyState == xhr.DONE) {
              var tempoutput = xhr.response;
              document.getElementById("output").innerHTML = tempoutput;
            }
          }
          //  Report errors if they happen
          xhr.addEventListener("error", function (e) {
            console("Error: " + e + " Could not load url.");
          }, false);
        }
      }
    </script>

  </body>
</html>

See also

IHTMLXMLHttpRequest::getResponseHeader