From cfa2ba99a4a27526a1b59451d845d33ead46705f Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Sat, 28 May 2022 15:52:14 +0800 Subject: [PATCH 01/23] AutoCorrect files/zh-cn/web/api/xmlhttprequest --- .../web/api/xmlhttprequest/channel/index.html | 2 +- .../getallresponseheaders/index.html | 6 +- .../getresponseheader/index.html | 26 ++++----- .../html_in_xmlhttprequest/index.html | 32 +++++------ files/zh-cn/web/api/xmlhttprequest/index.html | 4 +- .../xmlhttprequest/loadend_event/index.html | 2 +- .../xmlhttprequest/loadstart_event/index.html | 2 +- .../web/api/xmlhttprequest/mozanon/index.html | 2 +- .../mozbackgroundrequest/index.html | 6 +- .../mozresponsearraybuffer/index.html | 4 +- .../api/xmlhttprequest/mozsystem/index.html | 2 +- .../web/api/xmlhttprequest/open/index.html | 8 +-- .../overridemimetype/index.html | 8 +-- .../api/xmlhttprequest/readystate/index.html | 2 +- .../readystatechange_event/index.html | 2 +- .../api/xmlhttprequest/response/index.html | 2 +- .../xmlhttprequest/responsetext/index.html | 4 +- .../api/xmlhttprequest/responseurl/index.html | 2 +- .../api/xmlhttprequest/responsexml/index.html | 4 +- .../web/api/xmlhttprequest/send/index.html | 20 +++---- .../index.html | 56 +++++++++---------- .../setrequestheader/index.html | 8 +-- .../web/api/xmlhttprequest/status/index.html | 14 ++--- .../api/xmlhttprequest/statustext/index.html | 2 +- .../index.html | 56 +++++++++---------- .../web/api/xmlhttprequest/timeout/index.html | 4 +- .../web/api/xmlhttprequest/upload/index.html | 2 +- .../using_xmlhttprequest/index.html | 30 +++++----- .../xmlhttprequest/withcredentials/index.html | 10 ++-- .../xmlhttprequest/xmlhttprequest/index.html | 4 +- 30 files changed, 163 insertions(+), 163 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/channel/index.html b/files/zh-cn/web/api/xmlhttprequest/channel/index.html index 79690ce12d340f..fb3f7875c0bad8 100644 --- a/files/zh-cn/web/api/xmlhttprequest/channel/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/channel/index.html @@ -5,6 +5,6 @@ ---

{{APIRef('XMLHttpRequest')}}

-

创建请求的时候, XMLHttpRequest.channel  是一个被对象使用的  nsIChannel 。如果管道(channel) 还没被创建的话,它的值是 null 。在一个 multi-part  请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

+

创建请求的时候, XMLHttpRequest.channel  是一个被对象使用的  nsIChannel 。如果管道(channel)还没被创建的话,它的值是 null 。在一个 multi-part  请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

需要权限提升。

diff --git a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html index b5cbc89918328d..13b1e930c0514b 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html @@ -5,7 +5,7 @@ ---

{{APIRef('XMLHttpRequest')}}

-

XMLHttpRequest.getAllResponseHeaders() 方法返回所有的响应头,以 {{Glossary('CRLF')}} 分割的字符串,或者 null 如果没有收到任何响应。 注意: 对于复合请求 ( multipart requests ),这个方法返回当前请求的头部,而不是最初的请求的头部。

+

XMLHttpRequest.getAllResponseHeaders() 方法返回所有的响应头,以 {{Glossary('CRLF')}} 分割的字符串,或者 null 如果没有收到任何响应。 注意: 对于复合请求( multipart requests ),这个方法返回当前请求的头部,而不是最初的请求的头部。

DOMString getAllResponseHeaders();
@@ -20,7 +20,7 @@

参数

返回值

-

一个原始的header头例子:

+

一个原始的 header 头例子:

date: Fri, 08 Dec 2017 21:04:30 GMT\r\n
 content-encoding: gzip\r\n
@@ -70,7 +70,7 @@ 

例子

var contentType = headerMap["content-type"];
 
-

上面的变量contentType可以获取到http header里的content-type字段值。

+

上面的变量 contentType 可以获取到 http header 里的 content-type 字段值。

 

diff --git a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html index 47045f4cbb754d..c166f1a23a43f7 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html @@ -3,12 +3,12 @@ slug: Web/API/XMLHttpRequest/getResponseHeader tags: - API - - HTTP协议 - - XHR头 - - XHR请求 + - HTTP 协议 + - XHR 头 + - XHR 请求 - XMLHttpRequest - getResponseHeader - - http头 + - http 头 - 引用 - 得到响应头 - 报文 @@ -19,7 +19,7 @@

XMLHttpRequest.getResponseHeader()方法返回包含指定响应头文本的字符串。

-

如果在返回的响应头中有多个一样的名称,那么返回的值就会是用逗号和空格将值分隔的字符串。getResponseHeader()方法以UTF编码返回值。搜索的报文名是不区分大小写的。

+

如果在返回的响应头中有多个一样的名称,那么返回的值就会是用逗号和空格将值分隔的字符串。getResponseHeader() 方法以 UTF 编码返回值。搜索的报文名是不区分大小写的。

语法

@@ -34,16 +34,16 @@

参数

返回值

-

报文项值,如果连接未完成,响应中不存在报文项,或者被W3C限制,则返回null。

+

报文项值,如果连接未完成,响应中不存在报文项,或者被 W3C 限制,则返回 null。

示例:

-
var client = new XMLHttpRequest();//新建XMLHttpRequest对象。
-client.open("GET", "somefile.txt", true);//采用异步,GET方式获取somefile.txt。
-client.send();//发送空的query string。
-client.onreadystatechange = function() {//设定侦听器onreadystatechange。
-  if(this.readyState == this.HEADERS_RECEIVED) {//如果readyState表示响应头已返回
-    var contentType=client.getResponseHeader("Content-Type"));//将此连接的Content-Type响应头项赋值到contentType。
+
var client = new XMLHttpRequest();//新建 XMLHttpRequest 对象。
+client.open("GET", "somefile.txt", true);//采用异步,GET 方式获取 somefile.txt。
+client.send();//发送空的 query string。
+client.onreadystatechange = function() {//设定侦听器 onreadystatechange。
+  if(this.readyState == this.HEADERS_RECEIVED) {//如果 readyState 表示响应头已返回
+    var contentType=client.getResponseHeader("Content-Type"));//将此连接的 Content-Type 响应头项赋值到 contentType。
     if(contentType != my_expected_type) {//如果这不是你的预期值
       client.abort();//终止连接
     }
@@ -71,7 +71,7 @@ 

浏览器兼容性

{{Compat("api.XMLHttpRequest.getResponseHeader")}} -

也请看看:

+

也请看看:

  • 如何使用XMLHttpRequest
  • diff --git a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html index a2c18c0878ea33..ba85ac091a4f93 100644 --- a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html @@ -3,15 +3,15 @@ slug: Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest translation_of: Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest --- -

    W3C {{domxref("XMLHttpRequest")}} 规范为 XMLHttpRequest添加HTML语法解析功能, 此前仅支持XML语法解析。该功能允许Web应用程序使用XMLHttpRequest作为解析的DOM。

    +

    W3C {{domxref("XMLHttpRequest")}} 规范为 XMLHttpRequest添加 HTML 语法解析功能,此前仅支持 XML 语法解析。该功能允许 Web 应用程序使用XMLHttpRequest 作为解析的 DOM。

    局限

    -

    为了阻止同步使用XMLHttpRequest,HTML在同步模式下不支持使用。并且,只有当responseType属性设置为'document'的情况下,HTML支持才可用。这种限制避免了浪费时间解析HTML,而传统代码在默认模式下使用XMLHttpRequest来检索text/html资源的responseText. 此外,该限制避免了遗留代码的问题,该代码假定Http错误页面(通常具有text/html响应正文)的responseXML为空。

    +

    为了阻止同步使用 XMLHttpRequest,HTML 在同步模式下不支持使用。并且,只有当 responseType 属性设置为'document'的情况下,HTML 支持才可用。这种限制避免了浪费时间解析 HTML,而传统代码在默认模式下使用 XMLHttpRequest 来检索 text/html 资源的 responseText. 此外,该限制避免了遗留代码的问题,该代码假定 Http 错误页面(通常具有 text/html 响应正文)的 responseXML 为空。

    用法

    -

    使用XMLHttpRequest将HTML资源恢复为DOM就像使用XMLHttpRequest将XML资源恢复为DOM一样,除了您不能使用同步模式,您必须通过将字符串“document”分配给responseType属性来显式请求文档调用open()之后调用send()之前的XMLHttpRequest对象。

    +

    使用 XMLHttpRequest 将 HTML 资源恢复为 DOM 就像使用 XMLHttpRequest 将 XML 资源恢复为 DOM 一样,除了您不能使用同步模式,您必须通过将字符串“document”分配给 responseType 属性来显式请求文档调用 open()之后调用 send()之前的 XMLHttpRequest 对象。

     

    @@ -26,9 +26,9 @@

    用法

    功能检测

    -

    方法1

    +

    方法 1

    -

    该方法依赖于功能的“强制异步”性质。当你尝试设置一个以“sync”方式打开的XMLHttpRequest对象后,尝试将设置responseType会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

    +

    该方法依赖于功能的“强制异步”性质。当你尝试设置一个以“sync”方式打开的 XMLHttpRequest 对象后,尝试将设置 responseType 会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

    function HTMLinXHR() {
    @@ -46,21 +46,21 @@ 

    方法1

    -

    在JSFiddle中查看

    +

    在 JSFiddle 中查看

    This method is synchronous, does not rely on external assets though it may not be as reliable as method 2 described below since it does not check the actual feature but an indication of that feature.

    -

    方法2

    +

    方法 2

     

    -

    检测浏览器是否支持XMLHttpRequest中的HTML解析有两个挑战。首先,检测结果是异步获取的,因为HTML支持仅在异步模式下可用。Second, you have to actually fetch a test document over HTTP, because testing with a data: URL would end up testing data:URL support at the same time.

    +

    检测浏览器是否支持 XMLHttpRequest 中的 HTML 解析有两个挑战。首先,检测结果是异步获取的,因为 HTML 支持仅在异步模式下可用。Second, you have to actually fetch a test document over HTTP, because testing with a data: URL would end up testing data:URL support at the same time.

    -

    因此,为了检测HTML支持,服务器上需要一个测试HTML文件。这个测试文件很小,格式不是很完整:

    +

    因此,为了检测 HTML 支持,服务器上需要一个测试 HTML 文件。这个测试文件很小,格式不是很完整:

    <title>&amp;&<</title>
    -

    如果文件名为detect.html,以下功能可用于检测HTML解析支持:

    +

    如果文件名为 detect.html,以下功能可用于检测 HTML 解析支持:

    function detectHtmlInXhr(callback) {
       if (!window.XMLHttpRequest) {
    @@ -96,17 +96,17 @@ 

    方法2

    }
    -

    参数callback是一个函数,如果HTML解析是支持的,则将以true作为唯一参数被异步调用,如果不支持HTML解析,则为false。

    +

    参数 callback 是一个函数,如果 HTML 解析是支持的,则将以 true 作为唯一参数被异步调用,如果不支持 HTML 解析,则为 false。

    -

    在JSFiddle中查看

    +

    在 JSFiddle 中查看

    字符编码

    -

    如果在HTTP Content-Type 头部中声明了字符编码,则使用该字符编码。否则,如果存在字节顺序标记,则使用由字节顺序标记指示的编码。否则,如果有一个meta tag声明文件的前1024个字节中的编码,则使用该编码。否则,文件被解码为UTF-8。

    +

    如果在 HTTP Content-Type 头部中声明了字符编码,则使用该字符编码。否则,如果存在字节顺序标记,则使用由字节顺序标记指示的编码。否则,如果有一个 meta tag 声明文件的前 1024 个字节中的编码,则使用该编码。否则,文件被解码为 UTF-8。

    -

    老版本的浏览器中处理HTML

    +

    老版本的浏览器中处理 HTML

    -

    XMLHttpRequest最初只支持XML解析。 HTML解析支持是最近的一个补充。对于较老的浏览器,您甚至可以使用与正则表达式关联的responseText属性,以获取例如已知其ID的HTML元素的源代码:

    +

    XMLHttpRequest 最初只支持 XML 解析。 HTML 解析支持是最近的一个补充。对于较老的浏览器,您甚至可以使用与正则表达式关联的 responseText 属性,以获取例如已知其 ID 的 HTML 元素的源代码:

    function getHTML (oXHR, sTargetId) {
       var  rOpen = new RegExp("<(?!\!)\\s*([^\\s>]+)[^>]*\\s+id\\=[\"\']" + sTargetId + "[\"\'][^>]*>" ,"i"),
    @@ -121,7 +121,7 @@ 

    老版本的浏览器中处理HTML -
    注: 该解决方案对于解释器来说更为昂贵. 仅在确实需要的情况下使用.
    +
    注: 该解决方案对于解释器来说更为昂贵。仅在确实需要的情况下使用.

    Specifications

    diff --git a/files/zh-cn/web/api/xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/index.html index dcd13e0c54c347..a4f9e3c7920534 100644 --- a/files/zh-cn/web/api/xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/index.html @@ -136,9 +136,9 @@

    事件

    也可以使用 {{domxref("XMLHttpRequestEventTarget/onerror", "onerror")}} 属性
    {{domxref("XMLHttpRequest/load_event", "load")}}
    {{domxref("XMLHttpRequest")}}请求成功完成时触发。
    - 也可以使用 {{domxref("XMLHttpRequestEventTarget/onload", "onload")}} 属性.
    + 也可以使用 {{domxref("XMLHttpRequestEventTarget/onload", "onload")}} 属性。
    {{domxref("XMLHttpRequest/loadend_event", "loadend")}}
    -
    当请求结束时触发, 无论请求成功 ( {{domxref("XMLHttpRequest/load_event", "load")}}) 还是失败 ({{domxref("XMLHttpRequest/abort_event", "abort")}} 或 {{domxref("XMLHttpRequest/error_event", "error")}})。
    +
    当请求结束时触发,无论请求成功 ( {{domxref("XMLHttpRequest/load_event", "load")}}) 还是失败 ({{domxref("XMLHttpRequest/abort_event", "abort")}} 或 {{domxref("XMLHttpRequest/error_event", "error")}})。
    也可以使用 {{domxref("XMLHttpRequestEventTarget/onloadend", "onloadend")}} 属性。
    {{domxref("XMLHttpRequest/loadstart_event", "loadstart")}}
    接收到响应数据时触发。
    diff --git a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html index 60360d4c9ebfbd..61fc347ee6e0a3 100644 --- a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html @@ -4,7 +4,7 @@ translation_of: Web/API/XMLHttpRequest/loadend_event original_slug: Web/Events/loadend --- -

    loadend事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发“error”,“abort”或“load”事件之后)。这适用于 {{domxref("XMLHttpRequest")}}调用, 以及{{htmlelement("img")}}或{{htmlelement("video")}}之类元素的内容。

    +

    loadend 事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发“error”,“abort”或“load”事件之后)。这适用于 {{domxref("XMLHttpRequest")}}调用,以及{{htmlelement("img")}}或{{htmlelement("video")}}之类元素的内容。

    General info

    diff --git a/files/zh-cn/web/api/xmlhttprequest/loadstart_event/index.html b/files/zh-cn/web/api/xmlhttprequest/loadstart_event/index.html index 3052ba08a70e4b..96a39c5026b9e7 100644 --- a/files/zh-cn/web/api/xmlhttprequest/loadstart_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/loadstart_event/index.html @@ -6,7 +6,7 @@ translation_of: Web/API/XMLHttpRequest/loadstart_event original_slug: Web/Events/loadstart --- -

    当程序开始加载时,loadstart 事件将被触发。这个事件可以被 {{domxref("XMLHttpRequest")}} 调用, 也适用于 {{htmlelement("img")}} 和 {{htmlelement("video")}} 元素.

    +

    当程序开始加载时,loadstart 事件将被触发。这个事件可以被 {{domxref("XMLHttpRequest")}} 调用,也适用于 {{htmlelement("img")}} 和 {{htmlelement("video")}} 元素。

    基本信息

    diff --git a/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html b/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html index 6800a7acbcf676..97f9924a5f9707 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html @@ -13,4 +13,4 @@ ---
    {{APIRef('XMLHttpRequest')}}
    -

    XMLHttpRequest.mozAnon 是布尔类型。如果这个变量为真,则这次请求将不携带cookies或头部认证信息来发送。

    +

    XMLHttpRequest.mozAnon 是布尔类型。如果这个变量为真,则这次请求将不携带 cookies 或头部认证信息来发送。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html b/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html index c268e48297b251..8b37a2a1ca9836 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html @@ -6,13 +6,13 @@

    {{APIRef('XMLHttpRequest')}}

    -

    Note: Web内容无法使用此方法。 它需要提升权限才能访问。

    +

    Note: Web 内容无法使用此方法。 它需要提升权限才能访问。

    -

    XMLHttpRequest.mozBackgroundRequest是一个布尔对象,表示object是否为后台的服务请求。 如果为true,则不会将任何加载组与请求关联,并且不会向用户显示安全对话框。

    +

    XMLHttpRequest.mozBackgroundRequest是一个布尔对象,表示 object 是否为后台的服务请求。 如果为 true,则不会将任何加载组与请求关联,并且不会向用户显示安全对话框。

    请求失败时通常会显示安全对话框(例如身份验证或错误证书通知)。

    -

    Note: 该属性必须在调用open()之前设置。

    +

    Note: 该属性必须在调用 open() 之前设置。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html b/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html index f32ac5b023e672..c41daa46b7e3e4 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html @@ -6,7 +6,7 @@

    {{APIRef('XMLHttpRequest')}}

    -

    自Gecko 6以来已过时

    +

    自 Gecko 6 以来已过时

    -

    这是一个ArrayBuffer响应给这个请求,写为JavaScript类型数组。 如果请求不成功,或者它尚未发送,它就是NULL

    +

    这是一个ArrayBuffer响应给这个请求,写为 JavaScript 类型数组。 如果请求不成功,或者它尚未发送,它就是NULL

    diff --git a/files/zh-cn/web/api/xmlhttprequest/mozsystem/index.html b/files/zh-cn/web/api/xmlhttprequest/mozsystem/index.html index 534a48850002b2..dd453de9c76fe5 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozsystem/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozsystem/index.html @@ -7,4 +7,4 @@

    mozSystem is a boolean. If true, the same origin policy is not enforced on the request.

    -

    mozSystem 是一个布尔值。如果它被设置为true,那么在请求时就不会强制要求执行同源策略(Same Origin Policy)。

    +

    mozSystem 是一个布尔值。如果它被设置为 true,那么在请求时就不会强制要求执行同源策略(Same Origin Policy)。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/open/index.html b/files/zh-cn/web/api/xmlhttprequest/open/index.html index 9816c0c8891659..644c5fd7ea7b19 100644 --- a/files/zh-cn/web/api/xmlhttprequest/open/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/open/index.html @@ -8,7 +8,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.open() 方法初始化一个请求。该方法要从JavaScript代码使用;从原生代码初始化一个请求,使用openRequest()替代。

    +

    XMLHttpRequest.open() 方法初始化一个请求。该方法要从 JavaScript 代码使用;从原生代码初始化一个请求,使用openRequest()替代。

    注意:为已激活的请求调用此方法(open()openRequest()已被调用)相当于调用abort()
    @@ -24,12 +24,12 @@

    参数

    method
    -
    要使用的HTTP方法,比如「GET」、「POST」、「PUT」、「DELETE」、等。对于非HTTP(S) URL被忽略。
    +
    要使用的 HTTP 方法,比如「GET」、「POST」、「PUT」、「DELETE」、等。对于非 HTTP(S) URL 被忽略。
    url
    -
    一个{{domxref("DOMString")}}表示要向其发送请求的URL。
    +
    一个{{domxref("DOMString")}}表示要向其发送请求的 URL。
    async {{optional_inline}}
    一个可选的布尔参数,表示是否异步执行操作,默认为true。如果值为falsesend()方法直到收到答复前不会返回。如果true,已完成事务的通知可供事件监听器使用。如果multipart属性为true则这个必须为true,否则将引发异常。 -
    注意:主线程上的同步请求很容易破坏用户体验,应该避免;实际上,许多浏览器已完全弃用主线程上的同步XHR支持。在 {{domxref("Worker")}}中允许同步请求
    +
    注意:主线程上的同步请求很容易破坏用户体验,应该避免;实际上,许多浏览器已完全弃用主线程上的同步 XHR 支持。在 {{domxref("Worker")}}中允许同步请求
    user {{optional_inline}}
    可选的用户名用于认证用途;默认为null
    diff --git a/files/zh-cn/web/api/xmlhttprequest/overridemimetype/index.html b/files/zh-cn/web/api/xmlhttprequest/overridemimetype/index.html index 5563c71f818a9d..8244bf0374bc67 100644 --- a/files/zh-cn/web/api/xmlhttprequest/overridemimetype/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/overridemimetype/index.html @@ -3,7 +3,7 @@ slug: Web/API/XMLHttpRequest/overrideMimeType translation_of: Web/API/XMLHttpRequest/overrideMimeType --- -
    XMLHttpRequest 的 overrideMimeType 方法是指定一个MIME类型用于替代服务器指定的类型,使服务端响应信息中传输的数据按照该指定MIME类型处理。例如强制使流方式处理为"text/xml"类型处理时会被使用到,即使服务器在响应头中并没有这样指定。此方法必须在send方法之前调用方为有效。
    +
    XMLHttpRequest 的 overrideMimeType 方法是指定一个 MIME 类型用于替代服务器指定的类型,使服务端响应信息中传输的数据按照该指定 MIME 类型处理。例如强制使流方式处理为"text/xml"类型处理时会被使用到,即使服务器在响应头中并没有这样指定。此方法必须在 send 方法之前调用方为有效。

    Syntax

    @@ -13,7 +13,7 @@

    Parameters

    mimeType
    -
    一个 {{domxref("DOMString")}} 指定具体的MIME类型去代替有服务器指定的MIME类型. 如果服务器没有指定类型,那么 XMLHttpRequest 将会默认为 "text/xml".
    +
    一个 {{domxref("DOMString")}} 指定具体的 MIME 类型去代替有服务器指定的 MIME 类型. 如果服务器没有指定类型,那么 XMLHttpRequest 将会默认为 "text/xml".

    Return value

    @@ -22,10 +22,10 @@

    Return value

    Example

    -

    这个样例指定Content-Type为“text/plain",为接受的数据重写ContentType

    +

    这个样例指定 Content-Type 为“text/plain",为接受的数据重写 ContentType

    -

    Note:  如果服务器没有指定一个Content-Type 头, {{domxref("XMLHttpRequest")}} 默认MIME类型为"text/xml". 如果接受的数据不是有效的XML,将会出现格”格式不正确“的错误。你能够通过调用 overrideMimeType() 指定各种类型来避免这种情况。

    +

    Note:  如果服务器没有指定一个Content-Type 头,{{domxref("XMLHttpRequest")}} 默认 MIME 类型为"text/xml". 如果接受的数据不是有效的 XML,将会出现格”格式不正确“的错误。你能够通过调用 overrideMimeType() 指定各种类型来避免这种情况。

    // Interpret the received data as plain text
    diff --git a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html
    index b81ea8816fe78b..dc0310b9e5ced3 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html
    @@ -59,7 +59,7 @@
     
    -

    在IE中,状态有着不同的名称,并不是 UNSENTOPENEDHEADERS_RECEIVEDLOADING 和 DONE, 而是 READYSTATE_UNINITIALIZED (0),READYSTATE_LOADING (1) , READYSTATE_LOADED (2) , READYSTATE_INTERACTIVE (3) 和 READYSTATE_COMPLETE (4) 。

    +

    在 IE 中,状态有着不同的名称,并不是 UNSENTOPENEDHEADERS_RECEIVEDLOADING 和 DONE,而是 READYSTATE_UNINITIALIZED (0),READYSTATE_LOADING (1) , READYSTATE_LOADED (2) , READYSTATE_INTERACTIVE (3) 和 READYSTATE_COMPLETE (4) 。

    示例

    diff --git a/files/zh-cn/web/api/xmlhttprequest/readystatechange_event/index.html b/files/zh-cn/web/api/xmlhttprequest/readystatechange_event/index.html index fc6f320b1bdd0c..423cfa07908b2a 100644 --- a/files/zh-cn/web/api/xmlhttprequest/readystatechange_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/readystatechange_event/index.html @@ -16,7 +16,7 @@

    只要 readyState 属性发生变化,就会调用相应的处理函数。这个回调函数会被用户线程所调用。XMLHttpRequest.onreadystatechange 会在 {{domxref("XMLHttpRequest")}} 的{{domxref("XMLHttpRequest.readyState", "readyState")}} 属性发生改变时触发 {{event("readystatechange")}} 事件的时候被调用。

    -

    警告:这个方法不该用于同步的requests对象,并且不能在内部(C++)代码中使用.

    +

    警告:这个方法不该用于同步的 requests 对象,并且不能在内部 (C++) 代码中使用。

    当一个 XMLHttpRequest 请求被 abort() 方法取消时,其对应的 readystatechange 事件不会被触发。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/response/index.html b/files/zh-cn/web/api/xmlhttprequest/response/index.html index bbd2ff2d4b0fa7..31b6198c13b648 100644 --- a/files/zh-cn/web/api/xmlhttprequest/response/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/response/index.html @@ -43,7 +43,7 @@

    例子

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

    -

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

    +

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

    var url = 'somePage.html'; //一个本地页面
     
    diff --git a/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html b/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    index 02a55f4bf24f92..095be133656178 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    @@ -17,9 +17,9 @@ 

    取值

    {{domxref("DOMString")}} 是XMLHttpRequest 返回的纯文本的值。当{{domxref("DOMString")}} 为null时,表示请求失败了。当{{domxref("DOMString")}} 为""时,表示这个请求还没有被{{domxref("XMLHttpRequest.send", "send()")}}

    -

    当处理一个异步request的时候,尽管当前请求并没有结束,responseText的返回值是当前从后端收到的内容。

    +

    当处理一个异步 request 的时候,尽管当前请求并没有结束,responseText的返回值是当前从后端收到的内容。

    -

    当请求状态{{domxref("XMLHttpRequest.readyState", "readyState")}}变为{{domxref("XMLHttpRequest.DONE", "XMLHttpRequest.DONE")}} (4),且{{domxref("XMLHttpRequest.status", "status")}}值为200("OK")时,responseText是全部后端的返回数据

    +

    当请求状态{{domxref("XMLHttpRequest.readyState", "readyState")}}变为{{domxref("XMLHttpRequest.DONE", "XMLHttpRequest.DONE")}} (4),且{{domxref("XMLHttpRequest.status", "status")}}值为 200("OK")时,responseText是全部后端的返回数据

    例子

    diff --git a/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html b/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html index 289cb10febbb15..1fb4fea315f93a 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html @@ -7,7 +7,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    只读属性XMLHttpRequest.responseURL返回响应的序列化URL,如果URL为空则返回空字符串。如果URL有锚点,则位于URL # 后面的内容会被删除。如果URL有重定向, responseURL 的值会是经过多次重定向后的最终 URL 。

    +

    只读属性XMLHttpRequest.responseURL返回响应的序列化 URL,如果 URL 为空则返回空字符串。如果 URL 有锚点,则位于 URL # 后面的内容会被删除。如果 URL 有重定向, responseURL 的值会是经过多次重定向后的最终 URL 。

    实例

    diff --git a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html index 8f0c8574e750b0..db823c29d0d866 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html @@ -7,7 +7,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.responseXML 属性是一个只读值,它返回一个包含请求检索的HTML或XML的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml” 来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为 “document” 并且请求已异步执行时,响应将被当作 “text / html” 来解析。responseXML 对于任何其他类型的数据以及 data: URLs 为 null。

    +

    XMLHttpRequest.responseXML 属性是一个只读值,它返回一个包含请求检索的 HTML 或 XML 的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml” 来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为 “document” 并且请求已异步执行时,响应将被当作 “text / html” 来解析。responseXML 对于任何其他类型的数据以及 data: URLs 为 null。

    responseXML 在这个属性的历史堪称神器,它可以同时在 HTML 和 XML 中工作

    @@ -28,7 +28,7 @@

    例外

    InvalidStateError
    -
    {{domxref("XMLHttpRequest.responseType", "responseType")}} 既不是 "document" 也不是空字符串 (接收的数据应是XML 或 HTML).
    +
    {{domxref("XMLHttpRequest.responseType", "responseType")}} 既不是 "document" 也不是空字符串 (接收的数据应是 XML 或 HTML).

    示例

    diff --git a/files/zh-cn/web/api/xmlhttprequest/send/index.html b/files/zh-cn/web/api/xmlhttprequest/send/index.html index fcc581324040e2..7401647368a259 100644 --- a/files/zh-cn/web/api/xmlhttprequest/send/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/send/index.html @@ -18,7 +18,7 @@

    如果没有使用 {{domxref("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}} 方法设置 {{HTTPHeader("Accept")}} 头部信息,则会发送带有 "* / *" 的{{HTTPHeader("Accept")}} 头部。

    -

    Note: 请注意不要使用一个简单的ArrayBuffer对象作为参数,ArrayBuffer已经不再是ajax规范的一部分,请改用ArrayBufferView(有关信息请参考兼容性列表。)

    +

    Note: 请注意不要使用一个简单的 ArrayBuffer 对象作为参数,ArrayBuffer 已经不再是 ajax 规范的一部分,请改用 ArrayBufferView(有关信息请参考兼容性列表。)

    语法

    @@ -29,13 +29,13 @@

    参数

    body {{optional_inline}}
    -
    在XHR请求中要发送的数据体. 可以是: +
    在 XHR 请求中要发送的数据体. 可以是:
      -
    • 可以为 {{domxref("Document")}}, 在这种情况下,它在发送之前被序列化.
    • -
    • 为 XMLHttpRequestBodyInit, 从 per the Fetch spec (规范中)可以是 {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, 或者 {{domxref("USVString")}} 对象.
    • +
    • 可以为 {{domxref("Document")}}, 在这种情况下,它在发送之前被序列化。
    • +
    • 为 XMLHttpRequestBodyInit, 从 per the Fetch spec (规范中)可以是 {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, 或者 {{domxref("USVString")}} 对象。
    • null
    - 如果body没有指定值,则默认值为 null .
    + 如果 body 没有指定值,则默认值为 null .

    返回值

    @@ -73,11 +73,11 @@

     例外

    XMLHttpRequest.send(FormData data);
    -

    如果发送的数据是Document对象,需要在发送之前将其序列化。当发送一个Document对象时,Firefox 3之前的版本都是使用utf-8编码发送请求的;FireFox 3则使用由body.xmlEncoding指定的编码格式正确的发送文档,但如果未指定编码格式,则使用utf-8编码格式发送。

    +

    如果发送的数据是 Document 对象,需要在发送之前将其序列化。当发送一个 Document 对象时,Firefox 3 之前的版本都是使用 utf-8 编码发送请求的;FireFox 3 则使用由body.xmlEncoding指定的编码格式正确的发送文档,但如果未指定编码格式,则使用 utf-8 编码格式发送。

    -

    如果是一个nsIInputStream接口,它必须与nsIUploadChannel的setUploadStream()方法兼容。在这种情况下,将 Content-Length的头部添加到请求中,它的值则使用nsIInputStream接口的available()方法获取。任何报头包括在数据流顶部的都会被当做报文主体。所以,应该在发送请求即调用send()方法之前使用setRequestHeader() 方法设置 Content-Type头部来指定数据流的MIME类型。

    +

    如果是一个 nsIInputStream 接口,它必须与 nsIUploadChannel 的 setUploadStream()方法兼容。在这种情况下,将 Content-Length 的头部添加到请求中,它的值则使用 nsIInputStream 接口的 available()方法获取。任何报头包括在数据流顶部的都会被当做报文主体。所以,应该在发送请求即调用 send()方法之前使用setRequestHeader() 方法设置 Content-Type 头部来指定数据流的 MIME 类型。

    -

    发送二进制内容的最佳方法(如上传文件)是使用一个与send()方法结合的 ArrayBufferView 或者Blobs

    +

    发送二进制内容的最佳方法(如上传文件)是使用一个与 send()方法结合的 ArrayBufferView 或者Blobs

    案例: GET

    @@ -85,7 +85,7 @@

    案例: GET

    xhr.open('GET', '/server', true); xhr.onload = function () { - // 请求结束后,在此处写处理代码 + // 请求结束后,在此处写处理代码 }; xhr.send(null); @@ -104,7 +104,7 @@

    案例: POST

    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onload = function () { - // 请求结束后,在此处写处理代码 + // 请求结束后,在此处写处理代码 }; xhr.send("foo=bar&lorem=ipsum"); // xhr.send('string'); diff --git a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html index 07803549f373bc..59c742d380c33c 100644 --- a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html @@ -8,18 +8,18 @@ - XMLHttpRequest translation_of: Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data --- -

    使用JavaScript类型数组接受二进制数据

    +

    使用 JavaScript 类型数组接受二进制数据

    -

    可以通过设置一个XMLHttpRequest对象的 responseType属性来改变一个从服务器上返回的响应的数据类型.可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document","json" 和 "text". response属性的值会根据responseType属性包含实体主体(entity body), 它可能会是一个 ArrayBuffer, Blob, Document,JSON, string,或者为NULL(如果请求未完成或失败)

    +

    可以通过设置一个 XMLHttpRequest 对象的 responseType属性来改变一个从服务器上返回的响应的数据类型。可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document","json" 和 "text". response 属性的值会根据responseType 属性包含实体主体(entity body), 它可能会是一个 ArrayBuffer, Blob, Document,JSON, string,或者为NULL(如果请求未完成或失败)

    -

    下例读取了一个二进制图像文件,并且由该文件的二进制原生字节创建了一个8位无符号整数的数组.注意,这不会解码图像,但会读取像素。 你需要一个png解码库(png decoding library)。

    +

    下例读取了一个二进制图像文件,并且由该文件的二进制原生字节创建了一个 8 位无符号整数的数组。注意,这不会解码图像,但会读取像素。 你需要一个 png 解码库(png decoding library)。

    var oReq = new XMLHttpRequest();
     oReq.open("GET", "/myfile.png", true);
     oReq.responseType = "arraybuffer";
     
     oReq.onload = function (oEvent) {
    -  var arrayBuffer = oReq.response; // 注意:不是oReq.responseText
    +  var arrayBuffer = oReq.response; // 注意:不是 oReq.responseText
       if (arrayBuffer) {
         var byteArray = new Uint8Array(arrayBuffer);
         for (var i = 0; i < byteArray.byteLength; i++) {
    @@ -31,7 +31,7 @@ 

    使用JavaScript类 oReq.send(null);

    -

    也可以通过给responseType属性设置为“blob”,将二进制文件读取为{{domxref("Blob")}}类型的数据。

    +

    也可以通过给 responseType 属性设置为“blob”,将二进制文件读取为{{domxref("Blob")}}类型的数据。

    var oReq = new XMLHttpRequest();
     oReq.open("GET", "/myfile.png", true);
    @@ -46,7 +46,7 @@ 

    使用JavaScript类

    在老的浏览器中接受二进制数据

    -

    下面的load_binary_resource()方法可以从指定的URL那里加载二进制数据,并将数据返回给调用者.

    +

    下面的load_binary_resource() 方法可以从指定的 URL 那里加载二进制数据,并将数据返回给调用者。

    function load_binary_resource(url) {
       var req = new XMLHttpRequest();
    @@ -59,26 +59,26 @@ 

    在老的浏览器中接受 }

    -

    最为奇妙的操作在第五行,该行重写了默认的MIME类型,强制浏览器将该响应当成纯文本文件来对待, 使用一个用户自定义的字符集.这样就是告诉了浏览器,不要去解析数据,直接返回未处理过的字节码.

    +

    最为奇妙的操作在第五行,该行重写了默认的 MIME 类型,强制浏览器将该响应当成纯文本文件来对待,使用一个用户自定义的字符集。这样就是告诉了浏览器,不要去解析数据,直接返回未处理过的字节码。

    var filestream = load_binary_resource(url);
    -var abyte = filestream.charCodeAt(x) & 0xff; // 扔掉的高位字节(f7)
    +var abyte = filestream.charCodeAt(x) & 0xff; // 扔掉的高位字节 (f7)
     
    -

    上例从请求回来的二进制数据中得到偏移量为x处的字节.有效的偏移量范围是0到filestream.length-1.

    +

    上例从请求回来的二进制数据中得到偏移量为 x 处的字节。有效的偏移量范围是 0 到filestream.length-1.

    -

    查看 使用XMLHttpRequest下载文件 了解详情,查看下载文件.

    +

    查看 使用 XMLHttpRequest 下载文件 了解详情,查看下载文件.

    发送二进制数据

    -

    XMLHttpRequest对象的send方法已被增强,可以通过简单的传入一个ArrayBuffer, {{ domxref("Blob") }}, 或者 {{ domxref("File") }}对象来发送二进制数据.

    +

    XMLHttpRequest 对象的send 方法已被增强,可以通过简单的传入一个ArrayBuffer, {{ domxref("Blob") }}, 或者 {{ domxref("File") }}对象来发送二进制数据。

    -

    下例创建了一个文本文件,并使用POST方法将该文件发送到了服务器上.你也可以使用文本文件之外的其他二进制数据类型.

    +

    下例创建了一个文本文件,并使用POST 方法将该文件发送到了服务器上.你也可以使用文本文件之外的其他二进制数据类型。

    var oReq = new XMLHttpRequest();
     oReq.open("POST", url, true);
     oReq.onload = function (oEvent) {
    -  // 上传完成后.
    +  // 上传完成后。
     };
     
     var bb = new BlobBuilder(); // 需要合适的前缀: window.MozBlobBuilder 或者 window.WebKitBlobBuilder
    @@ -89,7 +89,7 @@ 

    发送二进制数据

    将类型数组作为二进制数据发送

    -

    你可以将JavaScript类型数组作为二进制数据发送出去.

    +

    你可以将 JavaScript 类型数组作为二进制数据发送出去。

    var myArray = new ArrayBuffer(512);
     var longInt8View = new Uint8Array(myArray);
    @@ -103,49 +103,49 @@ 

    将类型数组作为二进 xhr.send(myArray);

    -

    上例新建了一个512字节的8比特整数的数组并发送它,当然,你也可以发送任意的二进制数据.

    +

    上例新建了一个 512 字节的 8 比特整数的数组并发送它,当然,你也可以发送任意的二进制数据。

    -
    注意: 从Gecko 9.0 {{ geckoRelease("9.0") }}开始,添加了使用XMLHttpRequest发送 ArrayBuffer对象的功能.
    +
    注意: 从 Gecko 9.0 {{ geckoRelease("9.0") }}开始,添加了使用 XMLHttpRequest 发送 ArrayBuffer对象的功能。

    提交表单和上传文件

    请阅读此文

    -

    Firefox私有方法

    +

    Firefox 私有方法

    -

    下面的例子使用了POST请求,用Firefox私有的非标准方法sendAsBinary()将二进制数据以异步模式传输了出去.

    +

    下面的例子使用了POST请求,用 Firefox 私有的非标准方法sendAsBinary()将二进制数据以异步模式传输了出去。

    var req = new XMLHttpRequest();
     req.open("POST", url, true);
    -// 这里应该设置适当的MIME请求头
    +// 这里应该设置适当的 MIME 请求头
     req.setRequestHeader("Content-Length", 741);
     req.sendAsBinary(aBody);
     
    -

    第四行将Content-Length请求头设置为741,表示发送的数据长度为741个字节.你应该根据你要发送的数据的大小改变这个值.

    +

    第四行将 Content-Length 请求头设置为 741,表示发送的数据长度为 741 个字节。你应该根据你要发送的数据的大小改变这个值。

    -

    第五行使用sendAsBinary()方法发送这个请求.

    +

    第五行使用sendAsBinary()方法发送这个请求。

    -

    你也可以通过将一个nsIFileInputStream对象实例传给send()方法来发送二进制内容,这样的话,你不需要自己去设置Content-Length请求头的大小,程序会自动设置:

    +

    你也可以通过将一个nsIFileInputStream对象实例传给send()方法来发送二进制内容,这样的话,你不需要自己去设置Content-Length 请求头的大小,程序会自动设置:

    -
    // 新建一个文件流.
    +
    // 新建一个文件流。
     var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
                            .createInstance(Components.interfaces.nsIFileInputStream);
    -stream.init(file, 0x04 | 0x08, 0644, 0x04); // file是一个nsIFile对象实例
    +stream.init(file, 0x04 | 0x08, 0644, 0x04); // file 是一个 nsIFile 对象实例
     
    -// 设置文件的MIME类型
    +// 设置文件的 MIME 类型
     var mimeType = "text\/plain";
     try {
       var mimeService = Components.classes["@mozilla.org/mime;1"]
               .getService(Components.interfaces.nsIMIMEService);
    -  mimeType = mimeService.getTypeFromFile(file); // file是一个nsIFile对象实例
    +  mimeType = mimeService.getTypeFromFile(file); // file 是一个 nsIFile 对象实例
     }
    -catch (oEvent) { /* 丢弃异常,使用默认的text/plain类型 */ }
    +catch (oEvent) { /* 丢弃异常,使用默认的 text/plain 类型 */ }
     
     // 发送
     var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
                         .createInstance(Components.interfaces.nsIXMLHttpRequest);
    -req.open('PUT', url, false); /* 同步模式! */
    +req.open('PUT', url, false); /* 同步模式!*/
     req.setRequestHeader('Content-Type', mimeType);
     req.send(stream);
     
    diff --git a/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html b/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html index 5a1c2988e69de9..811603679b253e 100644 --- a/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html @@ -8,14 +8,14 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.setRequestHeader() 是设置HTTP请求头部的方法。此方法必须在  {{domxref("XMLHttpRequest.open", "open()")}} 方法和 {{domxref("XMLHttpRequest.send", "send()")}}   之间调用。如果多次对同一个请求头赋值,只会生成一个合并了多个值的请求头。

    +

    XMLHttpRequest.setRequestHeader() 是设置 HTTP 请求头部的方法。此方法必须在  {{domxref("XMLHttpRequest.open", "open()")}} 方法和 {{domxref("XMLHttpRequest.send", "send()")}}   之间调用。如果多次对同一个请求头赋值,只会生成一个合并了多个值的请求头。

    如果没有设置 {{HTTPHeader("Accept")}} 属性,则此发送出{{domxref("XMLHttpRequest.send", "send()")}} 的值为此属性的默认值*/* 。

    -

    安全起见,有些请求头的值只能由user agent设置:{{Glossary("Forbidden_header_name", "forbidden header names", 1)}}和{{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}.

    +

    安全起见,有些请求头的值只能由 user agent 设置:{{Glossary("Forbidden_header_name", "forbidden header names", 1)}}和{{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}.

    -

    自定义一些header属性进行跨域请求时,可能会遇到"not allowed by Access-Control-Allow-Headers in preflight response",你可能需要在你的服务端设置"Access-Control-Allow-Headers"。

    +

    自定义一些 header 属性进行跨域请求时,可能会遇到"not allowed by Access-Control-Allow-Headers in preflight response",你可能需要在你的服务端设置"Access-Control-Allow-Headers"。

    语法

    @@ -55,4 +55,4 @@

    兼容性

    参考

    -

    使用XMLHttpRequest

    +

    使用 XMLHttpRequest

    diff --git a/files/zh-cn/web/api/xmlhttprequest/status/index.html b/files/zh-cn/web/api/xmlhttprequest/status/index.html index fd8275abc91d05..a1503bd2274561 100644 --- a/files/zh-cn/web/api/xmlhttprequest/status/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/status/index.html @@ -14,11 +14,11 @@ ---
    {{APIRef('XMLHttpRequest')}}
    -
    只读属性 XMLHttpRequest.status 返回了XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status的值为0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为0。
    +
    只读属性 XMLHttpRequest.status 返回了XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status的值为0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为 0。
     
    -
    status码是标准的HTTP status codes。举个例子,status 200 代表一个成功的请求。如果服务器响应中没有明确指定status码,XMLHttpRequest.status 将会默认为200
    +
    status 码是标准的HTTP status codes。举个例子,status 200 代表一个成功的请求。如果服务器响应中没有明确指定 status 码,XMLHttpRequest.status 将会默认为200

    例子

    @@ -41,10 +41,10 @@

    例子

    /** * 输出如下: * - * UNSENT(未发送) 0 - * OPENED(已打开) 0 - * LOADING(载入中) 200 - * DONE(完成) 200 + * UNSENT(未发送)0 + * OPENED(已打开)0 + * LOADING(载入中)200 + * DONE(完成)200 */
    @@ -72,6 +72,6 @@

    浏览器兼容性

    其他相关资料

    diff --git a/files/zh-cn/web/api/xmlhttprequest/statustext/index.html b/files/zh-cn/web/api/xmlhttprequest/statustext/index.html index b2e722a4b97f6e..812d4e0f9e4119 100644 --- a/files/zh-cn/web/api/xmlhttprequest/statustext/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/statustext/index.html @@ -30,7 +30,7 @@

    例子

    xhr.send(null); /** - * 输出如下: + * 输出如下: * * 0 UNSENT * 1 OPENED diff --git a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html index 30e16f0fdff241..28c664bd7d4c85 100644 --- a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html @@ -11,7 +11,7 @@

    异步请求

    -

    如果你使用XMLHttpRequest发送异步请求,那么当请求的响应数据完全收到之时,会执行一个指定的回调函数,而在执行异步请求的同时,浏览器会正常地执行其他事务的处理。

    +

    如果你使用XMLHttpRequest发送异步请求,那么当请求的响应数据完全收到之时,会执行一个指定的回调函数,而在执行异步请求的同时,浏览器会正常地执行其他事务的处理。

    例子:在控制台输出页面源文件

    @@ -33,15 +33,15 @@

    例子:在控制台输出 }; xhr.send(null);

    -

    第2行中指定第三个参数为true表示该请求应该以异步模式执行。

    +

    第 2 行中指定第三个参数为true表示该请求应该以异步模式执行。

    -

    第3行创建一个事件处理函数对象,并将其分配给请求的onload属性。此处理程序查看请求的readyState,以查看事务是否在第4行完成,如果是,并且HTTP状态为200,则转储接收到的内容。如果发生错误,则显示错误消息。

    +

    第 3 行创建一个事件处理函数对象,并将其分配给请求的onload属性。此处理程序查看请求的readyState,以查看事务是否在第 4 行完成,如果是,并且 HTTP 状态为 200,则转储接收到的内容。如果发生错误,则显示错误消息。

    -

    第15行实际上启动了请求。只要请求的状态发生变化,就会调用回调程序。

    +

    第 15 行实际上启动了请求。只要请求的状态发生变化,就会调用回调程序。

    例子:创建一个标准的方法来读取外部文件

    -

    在一些需求情况下,必须读取多个外部文件. 这是一个标准的函数. 该函数使用XMLHttpRequest对象进行异步请求.而且可以为每个文件读取完成后指定不同的回调函数.

    +

    在一些需求情况下,必须读取多个外部文件。这是一个标准的函数. 该函数使用XMLHttpRequest对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

    function xhrSuccess() {
         this.callback.apply(this, this.arguments);
    @@ -70,23 +70,23 @@ 

    例子:创 loadFile("message.txt", showMessage, "New message!\n\n");

    -

    实用函数loadFile的签名声明(i)要读取的目标URL(通过HTTP GET),(ii)成功完成XHR操作时执行的函数,以及(iii)任意列表的附加参数“通过“XHR对象到成功回调函数。

    +

    实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数“通过“XHR 对象到成功回调函数。

    -

    第1行声明XHR操作成功完成时调用的函数。它又调用已经分配给XHR对象(第7行)属性的loadFile函数(本例中为函数showMessage)的调用中指定的回调函数。提供给调用函数loadFile的附加参数(如果有的话)被“应用”到回调函数的运行中。

    +

    第 1 行声明 XHR 操作成功完成时调用的函数。它又调用已经分配给 XHR 对象(第 7 行)属性的 loadFile 函数(本例中为函数 showMessage)的调用中指定的回调函数。提供给调用函数 loadFile 的附加参数(如果有的话)被“应用”到回调函数的运行中。

    -

    第5行声明XHR操作无法成功完成时调用的函数。

    +

    第 5 行声明 XHR 操作无法成功完成时调用的函数。

    -

    第7行存储XHR对象,成功回调函数作为loadFile的第二个参数给出。

    +

    第 7 行存储 XHR 对象,成功回调函数作为 loadFile 的第二个参数给出。

    -

    第12行将参数赋给loadFile的调用。从第三个参数开始,收集所有剩余的参数,分配给变量xhr的arguments属性,传递给成功回调函数xhrSuccess,最终提供给函数调用的回调函数(在本例中为showMessage) xhrSuccess。

    +

    第 12 行将参数赋给 loadFile 的调用。从第三个参数开始,收集所有剩余的参数,分配给变量 xhr 的 arguments 属性,传递给成功回调函数 xhrSuccess,最终提供给函数调用的回调函数(在本例中为 showMessage)xhrSuccess。

    -

    第15行为其第三个参数指定了true,表示该请求应该被异步处理。

    +

    第 15 行为其第三个参数指定了 true,表示该请求应该被异步处理。

    -

    第16行实际启动请求。

    +

    第 16 行实际启动请求。

    例子:使用超时

    -

    你可以使用一个超时设置,来避免你的代码为了等候读取请求的返回数据长时间执行.超时毫秒数可以通过为XMLHttpRequest对象的timeout 属性赋值来指定:

    +

    你可以使用一个超时设置,来避免你的代码为了等候读取请求的返回数据长时间执行。超时毫秒数可以通过为XMLHttpRequest对象的timeout 属性赋值来指定:

    function loadFile(url, timeout, callback) {
         var args = Array.prototype.slice.call(arguments, 3);
    @@ -121,22 +121,22 @@ 

    例子:使用超时

    如上,我们指定的超时时间为 2000 ms。

    -

    timeout属性添加于Gecko 12.0  {{Gecko("12.0")}}。

    +

    timeout属性添加于 Gecko 12.0  {{Gecko("12.0")}}。

    同步请求

    -

    注意:从Gecko 30.0 {{ geckoRelease("30.0") }},Blink 39.0和Edge 13开始,主线程上的同步请求由于对用户体验的负面影响而被弃用。

    +

    注意:从 Gecko 30.0 {{ geckoRelease("30.0") }},Blink 39.0 和 Edge 13 开始,主线程上的同步请求由于对用户体验的负面影响而被弃用。

    -

    同步XHR通常会导致网络挂起。但开发人员通常不会注意到这个问题,因为在网络状况不佳或服务器响应速度慢的情况下,挂起只会显示同步XHR现在处于弃用状态。建议开发人员远离这个API。

    +

    同步 XHR 通常会导致网络挂起。但开发人员通常不会注意到这个问题,因为在网络状况不佳或服务器响应速度慢的情况下,挂起只会显示同步 XHR 现在处于弃用状态。建议开发人员远离这个 API。

    -

    同步XHR不允许所有新的XHR功能(如timeoutabort)。这样做会调用InvalidAccessError

    +

    同步 XHR 不允许所有新的 XHR 功能(如timeoutabort)。这样做会调用InvalidAccessError

    例子:HTTP 同步请求

    -

    这个例子演示了如何进行一个简单的同步请求.

    +

    这个例子演示了如何进行一个简单的同步请求。

    var request = new XMLHttpRequest();
     request.open('GET', 'http://www.mozilla.org/', false);
    @@ -146,15 +146,15 @@ 

    例子:HTTP 同步请求

    }
    -

    第一行实例化一个XMLHttpRequest对象.第二行使用该对象打开一个HTTP请求,并指定使用HTTP GET方法来获取Mozilla.org主页内容,操作模式为同步.

    +

    第一行实例化一个XMLHttpRequest对象。第二行使用该对象打开一个 HTTP 请求,并指定使用HTTP GET方法来获取 Mozilla.org 主页内容,操作模式为同步。

    -

    第三行发送这个请求.参数为null表示GET请求不需要请求实体.

    +

    第三行发送这个请求。参数为null表示GET请求不需要请求实体。

    -

    第四行为请求结束之后,检查请求状态码.如果状态码为200, 表示该请求成功,请求到的页面源文件会输出到控制台上.

    +

    第四行为请求结束之后,检查请求状态码。如果状态码为 200,表示该请求成功,请求到的页面源文件会输出到控制台上。

    -

    例子: 在 Worker 中使用HTTP 同步请求

    +

    例子:在 Worker 中使用 HTTP 同步请求

    -

    Worker中使用XMLHttpRequest时,同步请求比异步请求更适合.

    +

    Worker中使用XMLHttpRequest时,同步请求比异步请求更适合。

    example.html (主页):

    @@ -195,13 +195,13 @@

    例子: 在 Worker注意:由于使用了Worker,所以该请求实际上也是异步的。 -

    可以使用类似的方法,让脚本在后台与服务器交互,预加载某些内容。查看使用web workers了解更多详情。

    +

    可以使用类似的方法,让脚本在后台与服务器交互,预加载某些内容。查看使用 web workers了解更多详情。

    -

    将同步XHR用例调整到Beacon API

    +

    将同步 XHR 用例调整到 Beacon API

    -

    在某些情况下,XMLHttpRequest的同步使用是不可替代的,就像在window.onunloadwindow.onbeforeunload事件期间一样。 您应该考虑使用带有Keepalive标志的fetchAPI。 当keepalivefetch不可用时,可以考虑使用navigator.sendBeacon API可以支持这些用例,通常在提供良好UX的同时。

    +

    在某些情况下,XMLHttpRequest 的同步使用是不可替代的,就像在window.onunloadwindow.onbeforeunload事件期间一样。 您应该考虑使用带有Keepalive标志的fetchAPI。 当keepalivefetch不可用时,可以考虑使用navigator.sendBeacon API 可以支持这些用例,通常在提供良好 UX 的同时。

    -

    以下示例(来自sendBeacon文档)显示了一个理论分析代码,该代码尝试通过在卸载处理程序中使用同步XMLHttpRequest将数据提交给服务器。 这导致页面的卸载被延迟。

    +

    以下示例(来自sendBeacon文档)显示了一个理论分析代码,该代码尝试通过在卸载处理程序中使用同步 XMLHttpRequest 将数据提交给服务器。 这导致页面的卸载被延迟。

    window.addEventListener('unload', logData, false);
     
    @@ -214,7 +214,7 @@ 

    将同步XHR用例调整到Beacon

    -

    使用sendBeacon()方法,当用户代理有机会的时候,数据将被异步传输到Web服务器,而不会延迟卸载或影响下一个导航的性能。

    +

    使用sendBeacon()方法,当用户代理有机会的时候,数据将被异步传输到 Web 服务器,而不会延迟卸载或影响下一个导航的性能。

    以下示例显示了使用sendBeacon()方法将数据提交给服务器的理论分析代码模式。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/timeout/index.html b/files/zh-cn/web/api/xmlhttprequest/timeout/index.html index 4bec81fee4c1f4..04a1428e707f21 100644 --- a/files/zh-cn/web/api/xmlhttprequest/timeout/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/timeout/index.html @@ -11,12 +11,12 @@

    XMLHttpRequest.timeout 是一个无符号长整型数,代表着一个请求在被自动终止前所消耗的毫秒数。默认值为 0,意味着没有超时。超时并不应该用在一个 {{Glossary('document environment')}} 中的同步 XMLHttpRequests  请求中,否则将会抛出一个 InvalidAccessError 类型的错误。当超时发生, timeout 事件将会被触发。

    -

    注意:你不能在拥有的window中,给同步请求使用超时。

    +

    注意:你不能在拥有的 window 中,给同步请求使用超时。

    在异步请求中使用 timeout

    -

    在IE中,超时属性可能只能在调用 open() 方法之后且在调用 send() 方法之前设置。

    +

    在 IE 中,超时属性可能只能在调用 open() 方法之后且在调用 send() 方法之前设置。

    示例

    diff --git a/files/zh-cn/web/api/xmlhttprequest/upload/index.html b/files/zh-cn/web/api/xmlhttprequest/upload/index.html index df0e2a83b2b913..8b2e766bb59563 100644 --- a/files/zh-cn/web/api/xmlhttprequest/upload/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/upload/index.html @@ -7,7 +7,7 @@

    XMLHttpRequest.upload 属性返回一个 {{domxref("XMLHttpRequestUpload")}}对象,用来表示上传的进度。这个对象是不透明的,但是作为一个{{domxref("XMLHttpRequestEventTarget")}},可以通过对其绑定事件来追踪它的进度。

    -

    可以被绑定在upload对象上的事件监听器如下:

    +

    可以被绑定在 upload 对象上的事件监听器如下:

    diff --git a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html index e5ba554baf12b3..00afe18819e445 100644 --- a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html @@ -33,13 +33,13 @@

    请求类型

    注意:由于对用户体验的负面影响,从 Gecko 30.0{{geckoRelease("30.0")}}版本开始,在主线程上的同步请求已经被弃用。
    -
    注意:XMLHttpRequest 构造函数并不仅限于 XML 文档。它之所以使用“XML”开头是因为在它诞生之时,原先用于异步数据交换的主要格式便是XML。
    +
    注意:XMLHttpRequest 构造函数并不仅限于 XML 文档。它之所以使用“XML”开头是因为在它诞生之时,原先用于异步数据交换的主要格式便是 XML。

    处理响应

    -

    W3C规范定义了 {{domxref("XMLHttpRequest.XMLHttpRequest", "XMLHttpRequest()")}} 对象的几种类型的响应属性。这些属性告诉客户端关于 XMLHttpRequest 返回状态的重要信息。一些处理非文本返回类型的用例,可能包含下面章节所描述的一些操作和分析。

    +

    W3C 规范定义了 {{domxref("XMLHttpRequest.XMLHttpRequest", "XMLHttpRequest()")}} 对象的几种类型的响应属性。这些属性告诉客户端关于 XMLHttpRequest 返回状态的重要信息。一些处理非文本返回类型的用例,可能包含下面章节所描述的一些操作和分析。

    -

    分析并操作 responseXML属性

    +

    分析并操作 responseXML 属性

    如果你使用 XMLHttpRequest 来获得一个远程的 XML 文档的内容,{{domxref("XMLHttpRequest.responseXML", "responseXML")}} 属性将会是一个由 XML 文档解析而来的 DOM 对象,这很难被操作和分析。这里有五种主要的分析 XML 文档的方式:

    @@ -50,15 +50,15 @@

    分析并操作 responseXML属性

    如果你预先知道 XML 文档的内容,你可以使用 RegExp。如果你用 RegExp 扫描时受到换行符的影响,你也许想要删除所有的换行符。然而,这种方法是"最后手段",因为如果 XML 代码发生轻微变化,该方法将可能失败。 -
    注意: 在 W3C XMLHttpRequest 规范中允许 HTML 通过 XMLHttpRequest.responseXML 属性进行解析。更多详细内容请阅读 HTML in XMLHttpRequest 。本条注意已在英文原文中更新。
    +
    注意: 在 W3C XMLHttpRequest 规范中允许 HTML 通过 XMLHttpRequest.responseXML 属性进行解析。更多详细内容请阅读 HTML in XMLHttpRequest 。本条注意已在英文原文中更新。
    -

    注意: XMLHttpRequest 现在可以使用 {{domxref("XMLHttpRequest.responseXML", "responseXML")}} 属性解释 HTML。请阅读 HTML in XMLHttpRequest 这篇文章了解相关用法。

    +

    注意: XMLHttpRequest 现在可以使用 {{domxref("XMLHttpRequest.responseXML", "responseXML")}} 属性解释 HTML。请阅读 HTML in XMLHttpRequest 这篇文章了解相关用法。

    解析和操作包含 HTML 文档的 responseText 属性

    -

    如果使用 XMLHttpRequest 从远端获取一个 HTML 页面,则所有 HTML 标记会以字符串的形式存放在responseText 属性里,这样就使得操作和解析这些标记变得困难。解析这些HTML标记主要有三种方式:

    +

    如果使用 XMLHttpRequest 从远端获取一个 HTML 页面,则所有 HTML 标记会以字符串的形式存放在 responseText 属性里,这样就使得操作和解析这些标记变得困难。解析这些 HTML 标记主要有三种方式:

    1. 使用 XMLHttpRequest.responseXML 属性。
    2. @@ -539,15 +539,15 @@

      一个小框架

      AJAXSubmit(myForm);
      -
      注意: 该框架使用 {{domxref("FileReader")}} API 进行文件的上传。这是一个较新的 API 并且还未在 IE9 及以下版本的浏览器中实现。因此,使用 AJAX 上传仍是一项实验性的技术。如果你不需要上传 二进制文件,该框架在大多数浏览器中运行良好。
      +
      注意: 该框架使用 {{domxref("FileReader")}} API 进行文件的上传。这是一个较新的 API 并且还未在 IE9 及以下版本的浏览器中实现。因此,使用 AJAX 上传仍是一项实验性的技术。如果你不需要上传 二进制文件,该框架在大多数浏览器中运行良好。
      -
      注意: 发送二进制内容的最佳途径是通过 {{jsxref("ArrayBuffer", "ArrayBuffers")}} 或 {{domxref("Blob", "Blobs")}} 结合 {{domxref("XMLHttpRequest.send()", "send()")}} 方法甚至 FileReader API 的 {{domxref("FileReader.readAsArrayBuffer()", "readAsArrayBuffer()")}} 方法。但是,自从该脚本的目的变成处理 可字符串化 的原始数据以来,我们使用 {{domxref("XMLHttpRequest.sendAsBinary()", "sendAsBinary()")}} 方法结合 FileReader API 的 {{domxref("FileReader.readAsBinaryString()", "readAsBinaryString()")}} 方法。同样地,上述脚本仅当你处理小文件时行之有效。如果不打算上传二进制内容,就考虑使用 FormData API 来替代。
      +
      注意: 发送二进制内容的最佳途径是通过 {{jsxref("ArrayBuffer", "ArrayBuffers")}} 或 {{domxref("Blob", "Blobs")}} 结合 {{domxref("XMLHttpRequest.send()", "send()")}} 方法甚至 FileReader API 的 {{domxref("FileReader.readAsArrayBuffer()", "readAsArrayBuffer()")}} 方法。但是,自从该脚本的目的变成处理 可字符串化 的原始数据以来,我们使用 {{domxref("XMLHttpRequest.sendAsBinary()", "sendAsBinary()")}} 方法结合 FileReader API 的 {{domxref("FileReader.readAsBinaryString()", "readAsBinaryString()")}} 方法。同样地,上述脚本仅当你处理小文件时行之有效。如果不打算上传二进制内容,就考虑使用 FormData API 来替代。
      -
      注意: 非标准的 sendAsBinary 方法从 Gecko 31 {{geckoRelease(31)}} 开始将会废弃并且会很快被移除。标准方法 send(Blob data) 将会取而代之。
      +
      注意: 非标准的 sendAsBinary 方法从 Gecko 31 {{geckoRelease(31)}} 开始将会废弃并且会很快被移除。标准方法 send(Blob data) 将会取而代之。

      使用 FormData 对象

      -

      {{domxref("XMLHttpRequest.FormData", "FormData")}} 构造函数能使你编译一个键/值对的集合,然后使用 XMLHttpRequest 发送出去。其主要用于发送表格数据,但是也能被单独用来传输表格中用户指定的数据。传输的数据格式与表格使用 submit() 方法发送数据的格式一致,如果该表格的编码类型被设为 "multipart/form-data". FormData 对象可以被结合 XMLHttpRequest 的多种方法利用。例如,想了解如何利用 FormData 与 XMLHttpRequests, 请转到 Using FormData Objects 页面。为了说教的目的,这里有一个早期的例子,被转译成了使用 FormData API 的形式。注意以下代码片段:

      +

      {{domxref("XMLHttpRequest.FormData", "FormData")}} 构造函数能使你编译一个键/值对的集合,然后使用 XMLHttpRequest 发送出去。其主要用于发送表格数据,但是也能被单独用来传输表格中用户指定的数据。传输的数据格式与表格使用 submit() 方法发送数据的格式一致,如果该表格的编码类型被设为 "multipart/form-data". FormData 对象可以被结合 XMLHttpRequest 的多种方法利用。例如,想了解如何利用 FormData 与 XMLHttpRequests,请转到 Using FormData Objects 页面。为了说教的目的,这里有一个早期的例子,被转译成了使用 FormData API 的形式。注意以下代码片段:

      <!doctype html>
      @@ -673,7 +673,7 @@ 

      使用 FormData 对象

      </html>
      -
      注意: 如之前所述,{{domxref("FormData")}} 对象并不是 可字符串化(stringifiable) 的对象。如果你想要字符串化一个提交数据,请使用这个 早期的纯 AJAX 例子. 同时也要注意,尽管这个例子中有一些 file {{ HTMLElement("input") }} 字段,但当你通过 FormData API 提交一个表格时,也无须使用 {{domxref("FileReader")}} API: 文件被自动加载并上传。
      +
      注意: 如之前所述,{{domxref("FormData")}} 对象并不是 可字符串化 (stringifiable) 的对象。如果你想要字符串化一个提交数据,请使用这个 早期的纯 AJAX 例子. 同时也要注意,尽管这个例子中有一些 file {{ HTMLElement("input") }} 字段,但当你通过 FormData API 提交一个表格时,也无须使用 {{domxref("FileReader")}} API: 文件被自动加载并上传。

      获取最后修改日期

      @@ -682,7 +682,7 @@

      获取最后修改日期

      } var oReq = new XMLHttpRequest(); -oReq.open("HEAD" /* 仅需要头部信息(headers)时请使用 HEAD! */, "yourpage.html"); +oReq.open("HEAD" /* 仅需要头部信息 (headers) 时请使用 HEAD! */, "yourpage.html"); oReq.onload = getHeaderTime; oReq.send(); @@ -702,7 +702,7 @@

      最后修改日期改变后的操 function ifHasChanged(sURL, fCallback) { var oReq = new XMLHttpRequest(); - oReq.open("HEAD" /* 使用 HEAD - 我们仅需要头部信息(headers)! */, sURL); + oReq.open("HEAD" /* 使用 HEAD - 我们仅需要头部信息 (headers)! */, sURL); oReq.callback = fCallback; oReq.filepath = sURL; oReq.onload = getHeaderTime; @@ -732,7 +732,7 @@

      绕过缓存

      req.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; req.send(null); -
      Note: 这个方法只工作于基于 Gecko内核的软件, 也就是通道属性是 Gecko-specific.
      +
      Note: 这个方法只工作于基于 Gecko 内核的软件,也就是通道属性是 Gecko-specific.

      还有一个跨浏览器兼容的方法,就是给 URL 添加时间戳。请确保你酌情地添加了 "?" or "&" 。例如,将:

      @@ -759,7 +759,7 @@

      安全性

      XMLHttpRequests 被停止

      -

      如果你的 XMLHttpRequest 收到 status=0statusText=null 的返回,这意味着请求无法执行。 就是无法发送. 一个可能导致的原因是当 XMLHttpRequest origin (创建的 XMLHttpRequest) 改变时,XMLHttpRequest 执行 open().。这种情况是可能发生的,举个例子,我们在一个窗口的onunload事件中关闭XMLHttpRequest,但实际上在即将关闭窗口时,之前创建的XMLHttpRequest仍然在那里,最后当这个窗口失去焦点、另一个窗口获得焦点时,它还是发送了请求(也就是open())。最有效的避免这个问题的方法是为新窗口的{{event("activate")}}事件设置一个监听器,一旦窗口关闭,它的{{event("unload")}}事件便触发。

      +

      如果你的 XMLHttpRequest 收到 status=0statusText=null 的返回,这意味着请求无法执行。 就是无法发送. 一个可能导致的原因是当 XMLHttpRequest origin (创建的 XMLHttpRequest) 改变时,XMLHttpRequest 执行 open().。这种情况是可能发生的,举个例子,我们在一个窗口的onunload事件中关闭 XMLHttpRequest,但实际上在即将关闭窗口时,之前创建的 XMLHttpRequest 仍然在那里,最后当这个窗口失去焦点、另一个窗口获得焦点时,它还是发送了请求(也就是open())。最有效的避免这个问题的方法是为新窗口的{{event("activate")}}事件设置一个监听器,一旦窗口关闭,它的{{event("unload")}}事件便触发。

      Worker

      diff --git a/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html b/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html index db46b8c6ed0967..a1dc678ae8af47 100644 --- a/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html @@ -8,18 +8,18 @@ ---

      {{APIRef('XMLHttpRequest')}}

      -

      XMLHttpRequest.withCredentials  属性是一个{{jsxref("Boolean")}}类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials属性是无效的。

      +

      XMLHttpRequest.withCredentials  属性是一个{{jsxref("Boolean")}}类型,它指示了是否该使用类似 cookies,authorization headers(头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials 属性是无效的。

      -

      此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是false。

      +

      此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是 false。

      -

      如果在发送来自其他域的XMLHttpRequest请求之前,未设置withCredentials 为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials 为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。

      +

      如果在发送来自其他域的 XMLHttpRequest 请求之前,未设置withCredentials 为 true,那么就不能为它自己的域设置 cookie 值。而通过设置withCredentials 为 true 获得的第三方 cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。

      -

      注: 永远不会影响到同源请求

      +

      注: 永远不会影响到同源请求

      -

      Note: 不同域下的XmlHttpRequest 响应,不论其Access-Control- header 设置什么值,都无法为它自身站点设置cookie值,除非它在请求之前将withCredentials 设为true。

      +

      Note: 不同域下的XmlHttpRequest 响应,不论其Access-Control- header 设置什么值,都无法为它自身站点设置 cookie 值,除非它在请求之前将withCredentials 设为 true。

      实例

      diff --git a/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html index 86db988f9bb816..1b2e10c372e924 100644 --- a/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html @@ -43,9 +43,9 @@

      参数(非标准)

      有两个属性可以设置:
      mozAnon
      -
      布尔值:将此属性设置为 true 将使浏览器在获取资源时不暴露自身来源和用户凭据。最重要的是,这意味着只有明确添加使用setRequestHeader才会发送cookies。
      +
      布尔值:将此属性设置为 true 将使浏览器在获取资源时不暴露自身来源和用户凭据。最重要的是,这意味着只有明确添加使用 setRequestHeader 才会发送 cookies。
      mozSystem
      -
      布尔值:将此属性设置为 true 允许建立跨站点的连接,而无需服务器选择使用CORS(译者注:Cross-Origin Resource Sharing 跨域资源共享)必须同时将参数 mozAnon 设置为 true即不能与cookie或其他用户凭据同时发送。仅限于在privileged (reviewed) apps起效(译者注:此句原文This only works in privileged (reviewed) apps;);在 Firefox 上任何网页加载后不起作用(译者注:此句原文 it does not work on arbitrary webpages loaded in Firefox.)。
      +
      布尔值:将此属性设置为 true 允许建立跨站点的连接,而无需服务器选择使用 CORS(译者注:Cross-Origin Resource Sharing 跨域资源共享)必须同时将参数 mozAnon 设置为 true即不能与 cookie 或其他用户凭据同时发送。仅限于在 privileged (reviewed) apps 起效(译者注:此句原文 This only works in privileged (reviewed) apps;);在 Firefox 上任何网页加载后不起作用(译者注:此句原文 it does not work on arbitrary webpages loaded in Firefox.)。
      From 75d208f2b978971a74a3e6ef409fee63d4a67b39 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 13:59:21 +0800 Subject: [PATCH 02/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/channel/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/channel/index.html b/files/zh-cn/web/api/xmlhttprequest/channel/index.html index fb3f7875c0bad8..1ab30aad791f50 100644 --- a/files/zh-cn/web/api/xmlhttprequest/channel/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/channel/index.html @@ -5,6 +5,6 @@ ---

      {{APIRef('XMLHttpRequest')}}

      -

      创建请求的时候, XMLHttpRequest.channel  是一个被对象使用的  nsIChannel 。如果管道(channel)还没被创建的话,它的值是 null 。在一个 multi-part  请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

      +

      创建请求的时候,XMLHttpRequest.channel 是一个被对象使用的  nsIChannel。如果管道(channel)还没被创建的话,它的值是 null。在一个 multi-part 请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

      需要权限提升。

      From f797323a45fe644b75d999025685833097fcac1d Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:00:30 +0800 Subject: [PATCH 03/23] Update index.html --- .../getallresponseheaders/index.html | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html index 13b1e930c0514b..de6e8f82fe9f2f 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html @@ -16,11 +16,11 @@

      语法

      参数

      -

      无。

      +

      返回值

      -

      一个原始的 header 头例子:

      +

      一个原始的 Header 头例子:

      date: Fri, 08 Dec 2017 21:04:30 GMT\r\n
       content-encoding: gzip\r\n
      @@ -70,14 +70,4 @@ 

      例子

      var contentType = headerMap["content-type"];
       
      -

      上面的变量 contentType 可以获取到 http header 里的 content-type 字段值。

      - -

       

      - -

       

      - -

       

      - -

       

      - -

       

      +

      上面的变量 contentType 可以获取到 HTTP header 里的 content-type 字段值。

      From 582c59fcf120312e320af12db2a4417591901150 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:01:58 +0800 Subject: [PATCH 04/23] Update index.html --- .../getresponseheader/index.html | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html index c166f1a23a43f7..57338aa2923050 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html @@ -8,7 +8,7 @@ - XHR 请求 - XMLHttpRequest - getResponseHeader - - http 头 + - HTTP 头 - 引用 - 得到响应头 - 报文 @@ -19,7 +19,7 @@

      XMLHttpRequest.getResponseHeader()方法返回包含指定响应头文本的字符串。

      -

      如果在返回的响应头中有多个一样的名称,那么返回的值就会是用逗号和空格将值分隔的字符串。getResponseHeader() 方法以 UTF 编码返回值。搜索的报文名是不区分大小写的。

      +

      如果在返回的响应头中有多个一样的名称,那么返回的值就会是用逗号和空格将值分隔的字符串。getResponseHeader() 方法以 UTF 编码返回值。搜索的报文名是不区分大小写的。

      语法

      @@ -38,14 +38,14 @@

      返回值

      示例:

      -
      var client = new XMLHttpRequest();//新建 XMLHttpRequest 对象。
      -client.open("GET", "somefile.txt", true);//采用异步,GET 方式获取 somefile.txt。
      -client.send();//发送空的 query string。
      -client.onreadystatechange = function() {//设定侦听器 onreadystatechange。
      -  if(this.readyState == this.HEADERS_RECEIVED) {//如果 readyState 表示响应头已返回
      -    var contentType=client.getResponseHeader("Content-Type"));//将此连接的 Content-Type 响应头项赋值到 contentType。
      -    if(contentType != my_expected_type) {//如果这不是你的预期值
      -      client.abort();//终止连接
      +
      var client = new XMLHttpRequest(); //新建 XMLHttpRequest 对象。
      +client.open("GET", "somefile.txt", true); // 采用异步,GET 方式获取 somefile.txt。
      +client.send(); // 发送空的 query string。
      +client.onreadystatechange = function() { //设定侦听器 onreadystatechange。
      +  if(this.readyState == this.HEADERS_RECEIVED) { // 如果 readyState 表示响应头已返回
      +    var contentType=client.getResponseHeader("Content-Type")); // 将此连接的 Content-Type 响应头项赋值到 contentType。
      +    if(contentType != my_expected_type) { // 如果这不是你的预期值
      +      client.abort(); // 终止连接
           }
         }
       }
      From e72e5f034c597fe8befb509f1599d381ac0152c1 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:04:50 +0800 Subject: [PATCH 05/23] Update index.html --- .../html_in_xmlhttprequest/index.html | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html index ba85ac091a4f93..23a37d75aee374 100644 --- a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html @@ -7,11 +7,11 @@

      局限

      -

      为了阻止同步使用 XMLHttpRequest,HTML 在同步模式下不支持使用。并且,只有当 responseType 属性设置为'document'的情况下,HTML 支持才可用。这种限制避免了浪费时间解析 HTML,而传统代码在默认模式下使用 XMLHttpRequest 来检索 text/html 资源的 responseText. 此外,该限制避免了遗留代码的问题,该代码假定 Http 错误页面(通常具有 text/html 响应正文)的 responseXML 为空。

      +

      为了阻止同步使用 XMLHttpRequest,HTML 在同步模式下不支持使用。并且,只有当 responseType 属性设置为 'document' 的情况下,HTML 支持才可用。这种限制避免了浪费时间解析 HTML,而传统代码在默认模式下使用 XMLHttpRequest 来检索 text/html 资源的 responseText. 此外,该限制避免了遗留代码的问题,该代码假定 HTTP 错误页面(通常具有 text/html 响应正文)的 responseXML 为空。

      用法

      -

      使用 XMLHttpRequest 将 HTML 资源恢复为 DOM 就像使用 XMLHttpRequest 将 XML 资源恢复为 DOM 一样,除了您不能使用同步模式,您必须通过将字符串“document”分配给 responseType 属性来显式请求文档调用 open()之后调用 send()之前的 XMLHttpRequest 对象。

      +

      使用 XMLHttpRequest 将 HTML 资源恢复为 DOM 就像使用 XMLHttpRequest 将 XML 资源恢复为 DOM 一样,除了您不能使用同步模式,您必须通过将字符串 “document” 分配给 responseType 属性来显式请求文档调用 open() 之后调用 send 之前的 XMLHttpRequest 对象。

       

      @@ -26,9 +26,9 @@

      用法

      功能检测

      -

      方法 1

      +

      方法 1

      -

      该方法依赖于功能的“强制异步”性质。当你尝试设置一个以“sync”方式打开的 XMLHttpRequest 对象后,尝试将设置 responseType 会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

      +

      该方法依赖于功能的 “强制异步” 性质。当你尝试设置一个以 “sync” 方式打开的 XMLHttpRequest 对象后,尝试将设置 responseType 会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

      function HTMLinXHR() {
      @@ -50,9 +50,7 @@ 

      方法 1

      This method is synchronous, does not rely on external assets though it may not be as reliable as method 2 described below since it does not check the actual feature but an indication of that feature.

      -

      方法 2

      - -

       

      +

      方法 2

      检测浏览器是否支持 XMLHttpRequest 中的 HTML 解析有两个挑战。首先,检测结果是异步获取的,因为 HTML 支持仅在异步模式下可用。Second, you have to actually fetch a test document over HTTP, because testing with a data: URL would end up testing data:URL support at the same time.

      @@ -104,7 +102,7 @@

      字符编码

      如果在 HTTP Content-Type 头部中声明了字符编码,则使用该字符编码。否则,如果存在字节顺序标记,则使用由字节顺序标记指示的编码。否则,如果有一个 meta tag 声明文件的前 1024 个字节中的编码,则使用该编码。否则,文件被解码为 UTF-8。

      -

      老版本的浏览器中处理 HTML

      +

      老版本的浏览器中处理 HTML

      XMLHttpRequest 最初只支持 XML 解析。 HTML 解析支持是最近的一个补充。对于较老的浏览器,您甚至可以使用与正则表达式关联的 responseText 属性,以获取例如已知其 ID 的 HTML 元素的源代码:

      From 127bfb2ca3862d0d77ce1a8141ed7add64ab35a9 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:05:32 +0800 Subject: [PATCH 06/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html index 61fc347ee6e0a3..a11ba4ff40642c 100644 --- a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html @@ -4,7 +4,7 @@ translation_of: Web/API/XMLHttpRequest/loadend_event original_slug: Web/Events/loadend --- -

      loadend 事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发“error”,“abort”或“load”事件之后)。这适用于 {{domxref("XMLHttpRequest")}}调用,以及{{htmlelement("img")}}或{{htmlelement("video")}}之类元素的内容。

      +

      loadend 事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发 “error”,“abort” 或 “load” 事件之后)。这适用于 {{domxref("XMLHttpRequest")}} 调用,以及 {{htmlelement("img")}} 或 {{htmlelement("video")}} 之类元素的内容。

      General info

      From 17a48c18b38be2039ff3d4dc529843fe6575f835 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:06:22 +0800 Subject: [PATCH 07/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/mozanon/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html b/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html index 97f9924a5f9707..6903191de9658c 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozanon/index.html @@ -13,4 +13,4 @@ ---
      {{APIRef('XMLHttpRequest')}}
      -

      XMLHttpRequest.mozAnon 是布尔类型。如果这个变量为真,则这次请求将不携带 cookies 或头部认证信息来发送。

      +

      XMLHttpRequest.mozAnon 是布尔类型。如果这个变量为真,则这次请求将不携带 Cookies 或头部认证信息来发送。

      From 8b2c021b9894118b5d42d49d51427a08512970b4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:06:54 +0800 Subject: [PATCH 08/23] Update index.html --- .../web/api/xmlhttprequest/mozbackgroundrequest/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html b/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html index 8b37a2a1ca9836..45140d2d4802ca 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozbackgroundrequest/index.html @@ -6,10 +6,10 @@

      {{APIRef('XMLHttpRequest')}}

      -

      Note: Web 内容无法使用此方法。 它需要提升权限才能访问。

      +

      Note: Web 内容无法使用此方法。它需要提升权限才能访问。

      -

      XMLHttpRequest.mozBackgroundRequest是一个布尔对象,表示 object 是否为后台的服务请求。 如果为 true,则不会将任何加载组与请求关联,并且不会向用户显示安全对话框。

      +

      XMLHttpRequest.mozBackgroundRequest是一个布尔对象,表示 object 是否为后台的服务请求。如果为 true,则不会将任何加载组与请求关联,并且不会向用户显示安全对话框。

      请求失败时通常会显示安全对话框(例如身份验证或错误证书通知)。

      From 6a43021556ec8546457602a566362eb0062731e7 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:08:00 +0800 Subject: [PATCH 09/23] Update index.html --- .../web/api/xmlhttprequest/mozresponsearraybuffer/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html b/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html index c41daa46b7e3e4..06c576153fe4dc 100644 --- a/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/mozresponsearraybuffer/index.html @@ -9,4 +9,4 @@

      自 Gecko 6 以来已过时

      -

      这是一个ArrayBuffer响应给这个请求,写为 JavaScript 类型数组。 如果请求不成功,或者它尚未发送,它就是NULL

      +

      这是一个 ArrayBuffer 响应给这个请求,写为 JavaScript 类型数组。 如果请求不成功,或者它尚未发送,它就是 NULL

      From d6be9694447e2abdf4a08ccd7c662a91798864f4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:13:00 +0800 Subject: [PATCH 10/23] Update index.html --- .../zh-cn/web/api/xmlhttprequest/open/index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/open/index.html b/files/zh-cn/web/api/xmlhttprequest/open/index.html index 644c5fd7ea7b19..86deb5b1555257 100644 --- a/files/zh-cn/web/api/xmlhttprequest/open/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/open/index.html @@ -8,9 +8,9 @@ ---

      {{APIRef('XMLHttpRequest')}}

      -

      XMLHttpRequest.open() 方法初始化一个请求。该方法要从 JavaScript 代码使用;从原生代码初始化一个请求,使用openRequest()替代。

      +

      XMLHttpRequest.open() 方法初始化一个请求。该方法要从 JavaScript 代码使用;从原生代码初始化一个请求,使用 openRequest() 替代。

      -
      注意:为已激活的请求调用此方法(open()openRequest()已被调用)相当于调用abort()
      +
      注意:为已激活的请求调用此方法(open()openRequest() 已被调用)相当于调用abort()

      语法

      @@ -24,17 +24,17 @@

      参数

      method
      -
      要使用的 HTTP 方法,比如「GET」、「POST」、「PUT」、「DELETE」、等。对于非 HTTP(S) URL 被忽略。
      +
      要使用的 HTTP 方法,比如 GETPOSTPUTDELETE、等。对于非 HTTP(S) URL 被忽略。
      url
      -
      一个{{domxref("DOMString")}}表示要向其发送请求的 URL。
      +
      一个 {{domxref("DOMString")}} 表示要向其发送请求的 URL。
      async {{optional_inline}}
      -
      一个可选的布尔参数,表示是否异步执行操作,默认为true。如果值为falsesend()方法直到收到答复前不会返回。如果true,已完成事务的通知可供事件监听器使用。如果multipart属性为true则这个必须为true,否则将引发异常。 -
      注意:主线程上的同步请求很容易破坏用户体验,应该避免;实际上,许多浏览器已完全弃用主线程上的同步 XHR 支持。在 {{domxref("Worker")}}中允许同步请求
      +
      一个可选的布尔参数,表示是否异步执行操作,默认为 true。如果值为 falsesend() 方法直到收到答复前不会返回。如果 true,已完成事务的通知可供事件监听器使用。如果 multipart 属性为 true 则这个必须为 true,否则将引发异常。 +
      注意:主线程上的同步请求很容易破坏用户体验,应该避免;实际上,许多浏览器已完全弃用主线程上的同步 XHR 支持。在 {{domxref("Worker")}} 中允许同步请求
      user {{optional_inline}}
      -
      可选的用户名用于认证用途;默认为null
      +
      可选的用户名用于认证用途;默认为 null
      password {{optional_inline}}
      -
      可选的密码用于认证用途,默认为null
      +
      可选的密码用于认证用途,默认为 null

      规格

      From 52b3f6cb1ff1611bb18ee8bcf405ea36096c7c33 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:16:20 +0800 Subject: [PATCH 11/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/readystate/index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html index dc0310b9e5ced3..938b177f95fb7e 100644 --- a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html @@ -8,7 +8,7 @@ ---

      {{APIRef('XMLHttpRequest')}}

      -

      XMLHttpRequest.readyState 属性返回一个 XMLHttpRequest  代理当前所处的状态。一个 XHR 代理总是处于下列状态中的一个:

      +

      XMLHttpRequest.readyState 属性返回一个 XMLHttpRequest 代理当前所处的状态。一个 XHR 代理总是处于下列状态中的一个:

    @@ -35,7 +35,7 @@ - + @@ -53,13 +53,13 @@
    HEADERS_RECEIVED
    send() 方法已经被调用,响应头也已经被接收。
    LOADING
    -
    响应体部分正在被接收。如果 responseType 属性是“text”或空字符串, responseText 将会在载入的过程中拥有部分响应数据。
    +
    响应体部分正在被接收。如果 responseType 属性是“text”或空字符串,responseText 将会在载入的过程中拥有部分响应数据。
    DONE
    请求操作已经完成。这意味着数据传输已经彻底完成或失败。
    -

    在 IE 中,状态有着不同的名称,并不是 UNSENTOPENEDHEADERS_RECEIVEDLOADING 和 DONE,而是 READYSTATE_UNINITIALIZED (0),READYSTATE_LOADING (1) , READYSTATE_LOADED (2) , READYSTATE_INTERACTIVE (3) 和 READYSTATE_COMPLETE (4) 。

    +

    在 IE 中,状态有着不同的名称,并不是 UNSENTOPENEDHEADERS_RECEIVEDLOADING 和 DONE,而是 READYSTATE_UNINITIALIZED (0),READYSTATE_LOADING (1) ,READYSTATE_LOADED (2) ,READYSTATE_INTERACTIVE (3) 和 READYSTATE_COMPLETE (4) 。

    示例

    From aa09d8af23ded2c20d4e2ce1a2af927be46cd59c Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:18:23 +0800 Subject: [PATCH 12/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/response/index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/response/index.html b/files/zh-cn/web/api/xmlhttprequest/response/index.html index 31b6198c13b648..f48ef03d65595e 100644 --- a/files/zh-cn/web/api/xmlhttprequest/response/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/response/index.html @@ -19,7 +19,7 @@ ---
    {{APIRef('XMLHttpRequest')}}
    -

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

    +

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

    语法

    @@ -30,7 +30,7 @@

    取值

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

    -

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

    +

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

    响应的类型如下所示。

    @@ -43,9 +43,9 @@

    例子

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

    -

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

    +

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

    -
    var url = 'somePage.html'; //一个本地页面
    +
    var url = 'somePage.html'; // 一个本地页面
     
     function load(url, callback) {
       var xhr = new XMLHttpRequest();
    
    From c2ead4448a4825b162a43cf7fb4819476e208167 Mon Sep 17 00:00:00 2001
    From: Jason Lee 
    Date: Mon, 30 May 2022 14:22:08 +0800
    Subject: [PATCH 13/23] Update index.html
    
    ---
     files/zh-cn/web/api/xmlhttprequest/responsetext/index.html | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html b/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    index 095be133656178..6e4553b7aa135b 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/responsetext/index.html
    @@ -15,11 +15,11 @@ 

    语法

    取值

    -

    {{domxref("DOMString")}} 是XMLHttpRequest 返回的纯文本的值。当{{domxref("DOMString")}} 为null时,表示请求失败了。当{{domxref("DOMString")}} 为""时,表示这个请求还没有被{{domxref("XMLHttpRequest.send", "send()")}}

    +

    {{domxref("DOMString")}} 是 XMLHttpRequest 返回的纯文本的值。当 {{domxref("DOMString")}} 为 null 时,表示请求失败了。当{{domxref("DOMString")}} 为 "" 时,表示这个请求还没有被 {{domxref("XMLHttpRequest.send", "send()")}}

    -

    当处理一个异步 request 的时候,尽管当前请求并没有结束,responseText的返回值是当前从后端收到的内容。

    +

    当处理一个异步 request 的时候,尽管当前请求并没有结束,responseText 的返回值是当前从后端收到的内容。

    -

    当请求状态{{domxref("XMLHttpRequest.readyState", "readyState")}}变为{{domxref("XMLHttpRequest.DONE", "XMLHttpRequest.DONE")}} (4),且{{domxref("XMLHttpRequest.status", "status")}}值为 200("OK")时,responseText是全部后端的返回数据

    +

    当请求状态 {{domxref("XMLHttpRequest.readyState", "readyState")}} 变为 {{domxref("XMLHttpRequest.DONE", "XMLHttpRequest.DONE")}} (4),且 {{domxref("XMLHttpRequest.status", "status")}} 值为 200("OK")时,responseText 是全部后端的返回数据

    例子

    From 1fff2aefe2a86602233381bf04d89e6f47bbfbc4 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:22:40 +0800 Subject: [PATCH 14/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/responseurl/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html b/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html index 1fb4fea315f93a..ded2c7e1addcf0 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responseurl/index.html @@ -7,7 +7,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    只读属性XMLHttpRequest.responseURL返回响应的序列化 URL,如果 URL 为空则返回空字符串。如果 URL 有锚点,则位于 URL # 后面的内容会被删除。如果 URL 有重定向, responseURL 的值会是经过多次重定向后的最终 URL 。

    +

    只读属性XMLHttpRequest.responseURL返回响应的序列化 URL,如果 URL 为空则返回空字符串。如果 URL 有锚点,则位于 URL # 后面的内容会被删除。如果 URL 有重定向,responseURL 的值会是经过多次重定向后的最终 URL。

    实例

    From 2818358ff4f42837f8060d61afe9db95d0b3b1fc Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:24:48 +0800 Subject: [PATCH 15/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/responsexml/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html index db823c29d0d866..8aadd69bffe06b 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html @@ -13,7 +13,7 @@

    responseXML 在这个属性的历史堪称神器,它可以同时在 HTML 和 XML 中工作

    -

    如果服务器没有明确指出 {{HTTPHeader("Content-Type")}} 头是 "text/xml" 还是 "application/xml", 你可以使用{{domxref("XMLHttpRequest.overrideMimeType()")}} 强制 XMLHttpRequest 解析为 XML.

    +

    如果服务器没有明确指出 {{HTTPHeader("Content-Type")}} 头是 "text/xml" 还是 "application/xml", 你可以使用{{domxref("XMLHttpRequest.overrideMimeType()")}} 强制 XMLHttpRequest 解析为 XML。

    语法

    @@ -22,13 +22,13 @@

    语法

    -

     {{domxref("Document")}} 中包含从 {{domxref("XMLHttpRequest")}} 中收到的 HTML 节点或解析后的 XML 节点,也可能是在没有收到任何数据或数据类型错误的情况下返回的 null.

    +

     {{domxref("Document")}} 中包含从 {{domxref("XMLHttpRequest")}} 中收到的 HTML 节点或解析后的 XML 节点,也可能是在没有收到任何数据或数据类型错误的情况下返回的 null。

    例外

    InvalidStateError
    -
    {{domxref("XMLHttpRequest.responseType", "responseType")}} 既不是 "document" 也不是空字符串 (接收的数据应是 XML 或 HTML).
    +
    {{domxref("XMLHttpRequest.responseType", "responseType")}} 既不是 "document" 也不是空字符串 (接收的数据应是 XML 或 HTML)。

    示例

    From 638963157d38b88c845b506eb6e4c4fa0ceb2ead Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:32:36 +0800 Subject: [PATCH 16/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/send/index.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/send/index.html b/files/zh-cn/web/api/xmlhttprequest/send/index.html index 7401647368a259..146b0d1445bae6 100644 --- a/files/zh-cn/web/api/xmlhttprequest/send/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/send/index.html @@ -13,12 +13,12 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.send() 方法用于发送 HTTP 请求。如果是异步请求(默认为异步请求),则此方法会在请求发送后立即返回;如果是同步请求,则此方法直到响应到达后才会返回。XMLHttpRequest.send() 方法接受一个可选的参数,其作为请求主体;如果请求方法是 GET 或者 HEAD,则应将请求主体设置为 null。

    +

    XMLHttpRequest.send() 方法用于发送 HTTP 请求。如果是异步请求(默认为异步请求),则此方法会在请求发送后立即返回;如果是同步请求,则此方法直到响应到达后才会返回。XMLHttpRequest.send() 方法接受一个可选的参数,其作为请求主体;如果请求方法是 GET 或者 HEAD,则应将请求主体设置为 null。

    如果没有使用 {{domxref("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}} 方法设置 {{HTTPHeader("Accept")}} 头部信息,则会发送带有 "* / *" 的{{HTTPHeader("Accept")}} 头部。

    -

    Note: 请注意不要使用一个简单的 ArrayBuffer 对象作为参数,ArrayBuffer 已经不再是 ajax 规范的一部分,请改用 ArrayBufferView(有关信息请参考兼容性列表。)

    +

    Note: 请注意不要使用一个简单的 ArrayBuffer 对象作为参数,ArrayBuffer 已经不再是 AJAX 规范的一部分,请改用 ArrayBufferView(有关信息请参考兼容性列表。)

    语法

    @@ -41,7 +41,7 @@

    返回值

    undefined.

    -

     例外

    +

    例外

    3 LOADING下载中; responseText 属性已经包含部分数据。下载中;responseText 属性已经包含部分数据。
    4
    @@ -73,11 +73,11 @@

     例外

    XMLHttpRequest.send(FormData data); -

    如果发送的数据是 Document 对象,需要在发送之前将其序列化。当发送一个 Document 对象时,Firefox 3 之前的版本都是使用 utf-8 编码发送请求的;FireFox 3 则使用由body.xmlEncoding指定的编码格式正确的发送文档,但如果未指定编码格式,则使用 utf-8 编码格式发送。

    +

    如果发送的数据是 Document 对象,需要在发送之前将其序列化。当发送一个 Document 对象时,Firefox 3 之前的版本都是使用 UTF-8 编码发送请求的;FireFox 3 则使用由 body.xmlEncoding 指定的编码格式正确的发送文档,但如果未指定编码格式,则使用 UTF-8 编码格式发送。

    -

    如果是一个 nsIInputStream 接口,它必须与 nsIUploadChannel 的 setUploadStream()方法兼容。在这种情况下,将 Content-Length 的头部添加到请求中,它的值则使用 nsIInputStream 接口的 available()方法获取。任何报头包括在数据流顶部的都会被当做报文主体。所以,应该在发送请求即调用 send()方法之前使用setRequestHeader() 方法设置 Content-Type 头部来指定数据流的 MIME 类型。

    +

    如果是一个 nsIInputStream 接口,它必须与 nsIUploadChannel 的 setUploadStream() 方法兼容。在这种情况下,将 Content-Length 的头部添加到请求中,它的值则使用 nsIInputStream 接口的 available() 方法获取。任何报头包括在数据流顶部的都会被当做报文主体。所以,应该在发送请求即调用 send() 方法之前使用setRequestHeader() 方法设置 Content-Type 头部来指定数据流的 MIME 类型。

    -

    发送二进制内容的最佳方法(如上传文件)是使用一个与 send()方法结合的 ArrayBufferView 或者Blobs

    +

    发送二进制内容的最佳方法(如上传文件)是使用一个与 send() 方法结合的 ArrayBufferView 或者 Blobs

    案例: GET

    From 0f487b7288640fbcc13822aaa15d0dacdfec007c Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:37:06 +0800 Subject: [PATCH 17/23] Update index.html --- .../index.html | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html index 59c742d380c33c..fb47950e45d7f6 100644 --- a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html @@ -8,9 +8,9 @@ - XMLHttpRequest translation_of: Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data --- -

    使用 JavaScript 类型数组接受二进制数据

    +

    使用 JavaScript 类型数组接受二进制数据

    -

    可以通过设置一个 XMLHttpRequest 对象的 responseType属性来改变一个从服务器上返回的响应的数据类型。可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document","json" 和 "text". response 属性的值会根据responseType 属性包含实体主体(entity body), 它可能会是一个 ArrayBuffer, Blob, Document,JSON, string,或者为NULL(如果请求未完成或失败)

    +

    可以通过设置一个 XMLHttpRequest 对象的 responseType属性来改变一个从服务器上返回的响应的数据类型。可用的属性值为空字符串 (默认),"arraybuffer"、"blob"、"document"、"json" 和 "text"。response 属性的值会根据 responseType 属性包含实体主体(entity body),它可能会是一个 ArrayBufferBlobDocumentJSON, string,或者为NULL(如果请求未完成或失败)

    下例读取了一个二进制图像文件,并且由该文件的二进制原生字节创建了一个 8 位无符号整数的数组。注意,这不会解码图像,但会读取像素。 你需要一个 png 解码库(png decoding library)。

    @@ -31,7 +31,7 @@

    使用 JavaScript 类 oReq.send(null); -

    也可以通过给 responseType 属性设置为“blob”,将二进制文件读取为{{domxref("Blob")}}类型的数据。

    +

    也可以通过给 responseType 属性设置为 “blob”,将二进制文件读取为 {{domxref("Blob")}} 类型的数据。

    var oReq = new XMLHttpRequest();
     oReq.open("GET", "/myfile.png", true);
    @@ -46,7 +46,7 @@ 

    使用 JavaScript 类

    在老的浏览器中接受二进制数据

    -

    下面的load_binary_resource() 方法可以从指定的 URL 那里加载二进制数据,并将数据返回给调用者。

    +

    下面的load_binary_resource() 方法可以从指定的 URL 那里加载二进制数据,并将数据返回给调用者。

    function load_binary_resource(url) {
       var req = new XMLHttpRequest();
    @@ -65,15 +65,15 @@ 

    在老的浏览器中接受 var abyte = filestream.charCodeAt(x) & 0xff; // 扔掉的高位字节 (f7)

    -

    上例从请求回来的二进制数据中得到偏移量为 x 处的字节。有效的偏移量范围是 0 到filestream.length-1.

    +

    上例从请求回来的二进制数据中得到偏移量为 x 处的字节。有效的偏移量范围是 0 到 filestream.length-1

    -

    查看 使用 XMLHttpRequest 下载文件 了解详情,查看下载文件.

    +

    查看 使用 XMLHttpRequest 下载文件 了解详情,查看下载文件

    发送二进制数据

    -

    XMLHttpRequest 对象的send 方法已被增强,可以通过简单的传入一个ArrayBuffer, {{ domxref("Blob") }}, 或者 {{ domxref("File") }}对象来发送二进制数据。

    +

    XMLHttpRequest 对象的 send 方法已被增强,可以通过简单的传入一个 ArrayBuffer、{{ domxref("Blob") }} 或者 {{ domxref("File") }} 对象来发送二进制数据。

    -

    下例创建了一个文本文件,并使用POST 方法将该文件发送到了服务器上.你也可以使用文本文件之外的其他二进制数据类型。

    +

    下例创建了一个文本文件,并使用 POST 方法将该文件发送到了服务器上。你也可以使用文本文件之外的其他二进制数据类型。

    var oReq = new XMLHttpRequest();
     oReq.open("POST", url, true);
    @@ -105,7 +105,7 @@ 

    将类型数组作为二进

    上例新建了一个 512 字节的 8 比特整数的数组并发送它,当然,你也可以发送任意的二进制数据。

    -
    注意: 从 Gecko 9.0 {{ geckoRelease("9.0") }}开始,添加了使用 XMLHttpRequest 发送 ArrayBuffer对象的功能。
    +
    注意: 从 Gecko 9.0 {{ geckoRelease("9.0") }} 开始,添加了使用 XMLHttpRequest 发送 ArrayBuffer 对象的功能。

    提交表单和上传文件

    @@ -113,7 +113,7 @@

    Firefox 私有方法

    -

    下面的例子使用了POST请求,用 Firefox 私有的非标准方法sendAsBinary()将二进制数据以异步模式传输了出去。

    +

    下面的例子使用了 POST 请求,用 Firefox 私有的非标准方法 sendAsBinary() 将二进制数据以异步模式传输了出去。

    var req = new XMLHttpRequest();
     req.open("POST", url, true);
    @@ -124,9 +124,9 @@ 

    Firefox 私有方法

    第四行将 Content-Length 请求头设置为 741,表示发送的数据长度为 741 个字节。你应该根据你要发送的数据的大小改变这个值。

    -

    第五行使用sendAsBinary()方法发送这个请求。

    +

    第五行使用 sendAsBinary() 方法发送这个请求。

    -

    你也可以通过将一个nsIFileInputStream对象实例传给send()方法来发送二进制内容,这样的话,你不需要自己去设置Content-Length 请求头的大小,程序会自动设置:

    +

    你也可以通过将一个 nsIFileInputStream 对象实例传给 send() 方法来发送二进制内容,这样的话,你不需要自己去设置 Content-Length 请求头的大小,程序会自动设置:

    // 新建一个文件流。
     var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
    @@ -145,7 +145,7 @@ 

    Firefox 私有方法

    // 发送 var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); -req.open('PUT', url, false); /* 同步模式!*/ +req.open('PUT', url, false); // 同步模式! req.setRequestHeader('Content-Type', mimeType); req.send(stream);
    From 97c8f11e149e871002e0925c1b2b814aadcabebf Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:38:18 +0800 Subject: [PATCH 18/23] Update index.html --- .../web/api/xmlhttprequest/setrequestheader/index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html b/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html index 811603679b253e..d915f7402f611c 100644 --- a/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/setrequestheader/index.html @@ -8,14 +8,14 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.setRequestHeader() 是设置 HTTP 请求头部的方法。此方法必须在  {{domxref("XMLHttpRequest.open", "open()")}} 方法和 {{domxref("XMLHttpRequest.send", "send()")}}   之间调用。如果多次对同一个请求头赋值,只会生成一个合并了多个值的请求头。

    +

    XMLHttpRequest.setRequestHeader() 是设置 HTTP 请求头部的方法。此方法必须在 {{domxref("XMLHttpRequest.open", "open()")}} 方法和 {{domxref("XMLHttpRequest.send", "send()")}} 之间调用。如果多次对同一个请求头赋值,只会生成一个合并了多个值的请求头。

    -

    如果没有设置 {{HTTPHeader("Accept")}} 属性,则此发送出{{domxref("XMLHttpRequest.send", "send()")}} 的值为此属性的默认值*/* 。

    +

    如果没有设置 {{HTTPHeader("Accept")}} 属性,则此发送出{{domxref("XMLHttpRequest.send", "send()")}} 的值为此属性的默认值:*/*

    -

    安全起见,有些请求头的值只能由 user agent 设置:{{Glossary("Forbidden_header_name", "forbidden header names", 1)}}和{{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}.

    +

    安全起见,有些请求头的值只能由 user agent 设置:{{Glossary("Forbidden_header_name", "forbidden header names", 1)}} 和{{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}。

    -

    自定义一些 header 属性进行跨域请求时,可能会遇到"not allowed by Access-Control-Allow-Headers in preflight response",你可能需要在你的服务端设置"Access-Control-Allow-Headers"。

    +

    自定义一些 header 属性进行跨域请求时,可能会遇到"not allowed by Access-Control-Allow-Headers in preflight response",你可能需要在你的服务端设置 "Access-Control-Allow-Headers"。

    语法

    From d4350bc13d3cec11590c8e49f2afba869f760a0f Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:39:26 +0800 Subject: [PATCH 19/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/status/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/status/index.html b/files/zh-cn/web/api/xmlhttprequest/status/index.html index a1503bd2274561..c88705284984fa 100644 --- a/files/zh-cn/web/api/xmlhttprequest/status/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/status/index.html @@ -14,11 +14,11 @@ ---
    {{APIRef('XMLHttpRequest')}}
    -
    只读属性 XMLHttpRequest.status 返回了XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status的值为0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为 0。
    +
    只读属性 XMLHttpRequest.status 返回了 XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status 的值为 0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为 0。
     
    -
    status 码是标准的HTTP status codes。举个例子,status 200 代表一个成功的请求。如果服务器响应中没有明确指定 status 码,XMLHttpRequest.status 将会默认为200
    +
    status 码是标准的 HTTP status codes。举个例子,status 200 代表一个成功的请求。如果服务器响应中没有明确指定 status 码,XMLHttpRequest.status 将会默认为 200

    例子

    @@ -72,6 +72,6 @@

    浏览器兼容性

    其他相关资料

    From 905e2f3a193565495279d4872389844351d0ef3d Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:43:06 +0800 Subject: [PATCH 20/23] Update index.html --- .../index.html | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html index 28c664bd7d4c85..13c4e100dd9274 100644 --- a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html @@ -33,15 +33,15 @@

    例子:在控制台输出 }; xhr.send(null);

    -

    第 2 行中指定第三个参数为true表示该请求应该以异步模式执行。

    +

    第 2 行中指定第三个参数为 true,表示该请求应该以异步模式执行。

    -

    第 3 行创建一个事件处理函数对象,并将其分配给请求的onload属性。此处理程序查看请求的readyState,以查看事务是否在第 4 行完成,如果是,并且 HTTP 状态为 200,则转储接收到的内容。如果发生错误,则显示错误消息。

    +

    第 3 行创建一个事件处理函数对象,并将其分配给请求的 onload 属性。此处理程序查看请求的 readyState,以查看事务是否在第 4 行完成,如果是,并且 HTTP 状态为 200,则转储接收到的内容。如果发生错误,则显示错误消息。

    第 15 行实际上启动了请求。只要请求的状态发生变化,就会调用回调程序。

    -

    例子:创建一个标准的方法来读取外部文件

    +

    例子:创建一个标准的方法来读取外部文件

    -

    在一些需求情况下,必须读取多个外部文件。这是一个标准的函数. 该函数使用XMLHttpRequest对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

    +

    在一些需求情况下,必须读取多个外部文件。这是一个标准的函数. 该函数使用 XMLHttpRequest 对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

    function xhrSuccess() {
         this.callback.apply(this, this.arguments);
    @@ -70,7 +70,7 @@ 

    例子:创 loadFile("message.txt", showMessage, "New message!\n\n");

    -

    实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数“通过“XHR 对象到成功回调函数。

    +

    实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数 “通过“ XHR 对象到成功回调函数。

    第 1 行声明 XHR 操作成功完成时调用的函数。它又调用已经分配给 XHR 对象(第 7 行)属性的 loadFile 函数(本例中为函数 showMessage)的调用中指定的回调函数。提供给调用函数 loadFile 的附加参数(如果有的话)被“应用”到回调函数的运行中。

    @@ -78,7 +78,7 @@

    例子:创

    第 7 行存储 XHR 对象,成功回调函数作为 loadFile 的第二个参数给出。

    -

    第 12 行将参数赋给 loadFile 的调用。从第三个参数开始,收集所有剩余的参数,分配给变量 xhr 的 arguments 属性,传递给成功回调函数 xhrSuccess,最终提供给函数调用的回调函数(在本例中为 showMessage)xhrSuccess。

    +

    第 12 行将参数赋给 loadFile 的调用。从第三个参数开始,收集所有剩余的参数,分配给变量 XHR 的 arguments 属性,传递给成功回调函数 xhrSuccess,最终提供给函数调用的回调函数(在本例中为 showMessage)xhrSuccess。

    第 15 行为其第三个参数指定了 true,表示该请求应该被异步处理。

    @@ -86,7 +86,7 @@

    例子:创

    例子:使用超时

    -

    你可以使用一个超时设置,来避免你的代码为了等候读取请求的返回数据长时间执行。超时毫秒数可以通过为XMLHttpRequest对象的timeout 属性赋值来指定:

    +

    你可以使用一个超时设置,来避免你的代码为了等候读取请求的返回数据长时间执行。超时毫秒数可以通过为 XMLHttpRequest 对象的 timeout 属性赋值来指定:

    function loadFile(url, timeout, callback) {
         var args = Array.prototype.slice.call(arguments, 3);
    @@ -108,7 +108,7 @@ 

    例子:使用超时

    xhr.send(null); }
    -

    你还可以为timeout事件的ontimeout事件句柄指定事件处理函数。

    +

    你还可以为 timeout 事件的 ontimeout 事件句柄指定事件处理函数。

    用法:

    @@ -132,7 +132,7 @@

    同步请求

    同步 XHR 通常会导致网络挂起。但开发人员通常不会注意到这个问题,因为在网络状况不佳或服务器响应速度慢的情况下,挂起只会显示同步 XHR 现在处于弃用状态。建议开发人员远离这个 API。

    -

    同步 XHR 不允许所有新的 XHR 功能(如timeoutabort)。这样做会调用InvalidAccessError

    +

    同步 XHR 不允许所有新的 XHR 功能(如 timeoutabort)。这样做会调用 InvalidAccessError

    例子:HTTP 同步请求

    @@ -146,15 +146,15 @@

    例子:HTTP 同步请求

    }
    -

    第一行实例化一个XMLHttpRequest对象。第二行使用该对象打开一个 HTTP 请求,并指定使用HTTP GET方法来获取 Mozilla.org 主页内容,操作模式为同步。

    +

    第一行实例化一个 XMLHttpRequest 对象。第二行使用该对象打开一个 HTTP 请求,并指定使用 HTTP GET 方法来获取 Mozilla.org 主页内容,操作模式为同步。

    -

    第三行发送这个请求。参数为null表示GET请求不需要请求实体。

    +

    第三行发送这个请求。参数为 null 表示 GET 请求不需要请求实体。

    第四行为请求结束之后,检查请求状态码。如果状态码为 200,表示该请求成功,请求到的页面源文件会输出到控制台上。

    例子:在 Worker 中使用 HTTP 同步请求

    -

    Worker中使用XMLHttpRequest时,同步请求比异步请求更适合。

    +

    Worker 中使用 XMLHttpRequest 时,同步请求比异步请求更适合。

    example.html (主页):

    @@ -186,7 +186,7 @@

    例子:在 Worker<
    self.onmessage = function (oEvent) {
       if (oEvent.data === "Hello") {
         var oReq = new XMLHttpRequest();
    -    oReq.open("GET", "myFile.txt", false);  // 同步请求
    +    oReq.open("GET", "myFile.txt", false); // 同步请求
         oReq.send(null);
         self.postMessage(oReq.responseText);
       }
    @@ -195,13 +195,13 @@ 

    例子:在 Worker<
    注意:由于使用了Worker,所以该请求实际上也是异步的。
    -

    可以使用类似的方法,让脚本在后台与服务器交互,预加载某些内容。查看使用 web workers了解更多详情。

    +

    可以使用类似的方法,让脚本在后台与服务器交互,预加载某些内容。查看使用 Web workers了解更多详情。

    将同步 XHR 用例调整到 Beacon API

    -

    在某些情况下,XMLHttpRequest 的同步使用是不可替代的,就像在window.onunloadwindow.onbeforeunload事件期间一样。 您应该考虑使用带有Keepalive标志的fetchAPI。 当keepalivefetch不可用时,可以考虑使用navigator.sendBeacon API 可以支持这些用例,通常在提供良好 UX 的同时。

    +

    在某些情况下,XMLHttpRequest 的同步使用是不可替代的,就像在 window.onunloadwindow.onbeforeunload 事件期间一样。 您应该考虑使用带有 Keepalive 标志的 fetch API。 当 keepalivefetch 不可用时,可以考虑使用 navigator.sendBeacon API 可以支持这些用例,通常在提供良好 UX 的同时。

    -

    以下示例(来自sendBeacon文档)显示了一个理论分析代码,该代码尝试通过在卸载处理程序中使用同步 XMLHttpRequest 将数据提交给服务器。 这导致页面的卸载被延迟。

    +

    以下示例(来自 sendBeacon 文档)显示了一个理论分析代码,该代码尝试通过在卸载处理程序中使用同步 XMLHttpRequest 将数据提交给服务器。这导致页面的卸载被延迟。

    window.addEventListener('unload', logData, false);
     
    @@ -214,9 +214,9 @@ 

    将同步 XHR 用例调整到 Bea

    -

    使用sendBeacon()方法,当用户代理有机会的时候,数据将被异步传输到 Web 服务器,而不会延迟卸载或影响下一个导航的性能。

    +

    使用 sendBeacon() 方法,当用户代理有机会的时候,数据将被异步传输到 Web 服务器,而不会延迟卸载或影响下一个导航的性能。

    -

    以下示例显示了使用sendBeacon()方法将数据提交给服务器的理论分析代码模式。

    +

    以下示例显示了使用 sendBeacon() 方法将数据提交给服务器的理论分析代码模式。

    window.addEventListener('unload', logData, false);
     
    
    From c5aa4f84d47ce2abec0cb21a7918a02528bd89be Mon Sep 17 00:00:00 2001
    From: Jason Lee 
    Date: Mon, 30 May 2022 14:46:00 +0800
    Subject: [PATCH 21/23] Update index.html
    
    ---
     .../web/api/xmlhttprequest/withcredentials/index.html  | 10 +++++-----
     1 file changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html b/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html
    index a1dc678ae8af47..f45abe7908804d 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/withcredentials/index.html
    @@ -8,18 +8,18 @@
     ---
     

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.withCredentials  属性是一个{{jsxref("Boolean")}}类型,它指示了是否该使用类似 cookies,authorization headers(头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials 属性是无效的。

    +

    XMLHttpRequest.withCredentials 属性是一个 {{jsxref("Boolean")}} 类型,它指示了是否该使用类似 Cookies、Authorization Headers (头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用 withCredentials 属性是无效的。

    -

    此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是 false。

    +

    此外,这个指示也会被用做响应中 Cookies 被忽视的标示。默认值是 false。

    -

    如果在发送来自其他域的 XMLHttpRequest 请求之前,未设置withCredentials 为 true,那么就不能为它自己的域设置 cookie 值。而通过设置withCredentials 为 true 获得的第三方 cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。

    +

    如果在发送来自其他域的 XMLHttpRequest 请求之前,未设置withCredentials 为 true,那么就不能为它自己的域设置 Cookie 值。而通过设置 withCredentials 为 true 获得的第三方 Cookies,将会依旧享受同源策略,因此不能被通过 document.cookie 或者从头部相应请求的脚本等访问。

    -

    注: 永远不会影响到同源请求

    +

    注:永远不会影响到同源请求

    -

    Note: 不同域下的XmlHttpRequest 响应,不论其Access-Control- header 设置什么值,都无法为它自身站点设置 cookie 值,除非它在请求之前将withCredentials 设为 true。

    +

    Note:不同域下的 XmlHttpRequest 响应,不论其 Access-Control- Header 设置什么值,都无法为它自身站点设置 Cookie 值,除非它在请求之前将 withCredentials 设为 true。

    实例

    From ece2fe89dfe7478db029af6385b381946b23832d Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 30 May 2022 14:47:00 +0800 Subject: [PATCH 22/23] Update index.html --- files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html index 1b2e10c372e924..571334d88ad47a 100644 --- a/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/xmlhttprequest/index.html @@ -43,9 +43,9 @@

    参数(非标准)

    有两个属性可以设置:
    mozAnon
    -
    布尔值:将此属性设置为 true 将使浏览器在获取资源时不暴露自身来源和用户凭据。最重要的是,这意味着只有明确添加使用 setRequestHeader 才会发送 cookies。
    +
    布尔值:将此属性设置为 true 将使浏览器在获取资源时不暴露自身来源和用户凭据。最重要的是,这意味着只有明确添加使用 setRequestHeader 才会发送 Cookies。
    mozSystem
    -
    布尔值:将此属性设置为 true 允许建立跨站点的连接,而无需服务器选择使用 CORS(译者注:Cross-Origin Resource Sharing 跨域资源共享)必须同时将参数 mozAnon 设置为 true即不能与 cookie 或其他用户凭据同时发送。仅限于在 privileged (reviewed) apps 起效(译者注:此句原文 This only works in privileged (reviewed) apps;);在 Firefox 上任何网页加载后不起作用(译者注:此句原文 it does not work on arbitrary webpages loaded in Firefox.)。
    +
    布尔值:将此属性设置为 true 允许建立跨站点的连接,而无需服务器选择使用 CORS(译者注:Cross-Origin Resource Sharing 跨域资源共享)必须同时将参数 mozAnon 设置为 true即不能与 Cookie 或其他用户凭据同时发送。仅限于在 privileged (reviewed) apps 起效(译者注:此句原文 This only works in privileged (reviewed) apps;);在 Firefox 上任何网页加载后不起作用(译者注:此句原文 it does not work on arbitrary webpages loaded in Firefox.)。
    From 5dab503130f5fd843bce35f788d099b662c56364 Mon Sep 17 00:00:00 2001 From: A1lo Date: Mon, 30 May 2022 14:51:45 +0800 Subject: [PATCH 23/23] Apply suggestions from code review --- files/zh-cn/web/api/xmlhttprequest/channel/index.html | 2 +- files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/files/zh-cn/web/api/xmlhttprequest/channel/index.html b/files/zh-cn/web/api/xmlhttprequest/channel/index.html index 1ab30aad791f50..4325be4d391616 100644 --- a/files/zh-cn/web/api/xmlhttprequest/channel/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/channel/index.html @@ -5,6 +5,6 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    创建请求的时候,XMLHttpRequest.channel 是一个被对象使用的  nsIChannel。如果管道(channel)还没被创建的话,它的值是 null。在一个 multi-part 请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

    +

    创建请求的时候,XMLHttpRequest.channel 是一个被对象使用的 nsIChannel。如果管道(channel)还没被创建的话,它的值是 null。在一个 multi-part 请求案例中,它是初始化的管道,不是 multi-part 请求中的不同部分。

    需要权限提升。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html index 57338aa2923050..0c206c03f34804 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html @@ -71,7 +71,7 @@

    浏览器兼容性

    {{Compat("api.XMLHttpRequest.getResponseHeader")}} -

    也请看看:

    +

    参见