files/en-us/web/api/xmlhttprequest/responsexml/index.md
{{APIRef("XMLHttpRequest API")}} {{AvailableInWorkers("window_and_worker_except_service")}}
The XMLHttpRequest.responseXML read-only property returns
a {{domxref("Document")}} containing the HTML or XML retrieved by the request; or
null if the request was unsuccessful, has not yet been sent, or if the data
can't be parsed as XML or HTML.
[!NOTE] The name
responseXMLis an artifact of this property's history; it works for both HTML and XML.
Usually, the response is parsed as "text/xml". If the
{{domxref("XMLHttpRequest.responseType", "responseType")}} is set to
"document" and the request was made asynchronously, instead the response is
parsed as "text/html". responseXML is null for
any other types of data, as well as for data: URLs.
If the server doesn't specify the {{HTTPHeader("Content-Type")}} as
"text/xml" or "application/xml", you can use
{{domxref("XMLHttpRequest.overrideMimeType()")}} to parse it as XML anyway.
This property isn't available to workers.
A {{domxref("Document")}} from parsing the XML or HTML received using
{{domxref("XMLHttpRequest")}}, or null if no data was received or if the
data is not XML/HTML.
InvalidStateError {{domxref("DOMException")}}
document or an empty string.const xhr = new XMLHttpRequest();
xhr.open("GET", "/server");
// If specified, responseType must be empty string or "document"
xhr.responseType = "document";
// Force the response to be parsed as XML
xhr.overrideMimeType("text/xml");
xhr.onload = () => {
if (xhr.readyState === xhr.DONE && xhr.status === 200) {
console.log(xhr.response, xhr.responseXML);
}
};
xhr.send();
{{Specifications}}
{{Compat}}