XMLHttpRequest property
Retrieves a factory object that can be used to create an XMLHttpRequest object.
Syntax
HRESULT value = object.get_XMLHttpRequest(IHTMLXMLHttpRequestFactory** p);
Property values
Type: Object
the factory object.
Standards information
- XMLHttpRequest, Section 3
Remarks
Despite its name, this method does not return an XMLHttpRequest object directly. Instead, it returns an IHTMLXMLHttpRequestFactory, which can be used to create an XMLHttpRequest object.
If the FEATURE_XMLHTTPREQUEST feature has been disabled, this method will return a VARIANT of type VT_EMPTY. See CoInternetIsFeatureEnabled.
If the cross-domain request feature has been disabled in Windows Internet Explorer, this method returns NULL.
IHTMLWindow5::XMLHttpRequest was introduced in Windows Internet Explorer 7
Examples
This example lets you load portions of a text file by setting the byte range to retrieve using setRequestHeader:
<!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>