--- title: XMLHttpRequest.response slug: Web/API/XMLHttpRequest/response tags: - AJAX - API - XHR - XMLHttpRequest - 加载数据 - 参考 - 只读 - 响应 - 属性 - 服务器 - 获取内容 - 获取数据 - 读取数据 translation_of: Web/API/XMLHttpRequest/response ---
{{APIRef('XMLHttpRequest')}}

{{domxref("XMLHttpRequest")}} response 属性返回响应的正文。返回的类型为 {{domxref("ArrayBuffer")}} 、 {{domxref("Blob")}} 、 {{domxref("Document")}} 、 JavaScript {{jsxref("Object")}} 或 {{domxref("DOMString")}} 中的一个。 这取决于 {{domxref("XMLHttpRequest.responseType", "responseType")}} 属性。

语法

var body = XMLHttpRequest.response;

取值

一个对象,其类型取决于 {{domxref("XMLHttpRequest.responseType", "responseType")}} 的值。你可以尝试设置 responseType 的值,以便通过特定的类型请求数据。 responseType 要在调用 {{domxref("XMLHttpRequest.open", "open()")}} 初始化请求之后调用,并且要在调用 {{domxref("XMLHttpRequest.send", "send()")}} 发送请求到服务器之前调用。

如果请求尚未完成或未成功,则取值是 null 。例外的,读取文本数据时如果将 responseType 的值设置成"text"或空字符串("")且当请求状态还在是 LOADING {{domxref("XMLHttpRequest.readyState", "readyState")}} (3) 时,response 包含到目前为止该请求已经取得的内容。

响应的类型如下所示。

{{page("/zh-CN/docs/Web/API/XMLHttpRequestResponseType", "取值")}}

例子

此例子提供了一个方法—— load() ,它可以从服务器加载和处理页面。它通过创建一个 {{domxref("XMLHttpRequest")}} 对象并为 {{event("readystatechange")}} 事件创建一个监听器。这样的话,当 readyState 变成 DONE (4) 时就会获取 response 并将其传递给 load() 中提供的回调函数。

返回的内容会被作为原始文本数据处理 (因为这里没有覆盖  {{domxref("XMLHttpRequest.responseType", "responseType")}} 的默认值)。

var url = 'somePage.html'; //一个本地页面

function load(url, callback) {
  var xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
      callback(xhr.response);
    }
  }

  xhr.open('GET', url, true);
  xhr.send('');
}

规范

规范 状态 注释
{{SpecName('XMLHttpRequest', '#the-response-attribute')}} {{Spec2('XMLHttpRequest')}} WHATWG living standard

浏览器兼容性

{{Compat("api.XMLHttpRequest.response")}}

了解更多