From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/api/headers/set/index.html | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 files/zh-cn/web/api/headers/set/index.html (limited to 'files/zh-cn/web/api/headers/set') diff --git a/files/zh-cn/web/api/headers/set/index.html b/files/zh-cn/web/api/headers/set/index.html new file mode 100644 index 0000000000..fb6f477238 --- /dev/null +++ b/files/zh-cn/web/api/headers/set/index.html @@ -0,0 +1,80 @@ +--- +title: Headers.set() +slug: Web/API/Headers/set +translation_of: Web/API/Headers/set +--- +
{{APIRef("Fetch")}}
+ +

headers接口中 set() 方法在可以在已经声明中的headers对象修改已有的一组键值对或者创建一个新的键值对。

+ +

set() 方法和 append()方法不同的是声明的Headers对象是否已经存在对应的keys是否已经存在并且已经赋值。set() 方法将会覆盖之前的value,然而 append()方法只会在Headers对象的尾部添加一个新的键值对。

+ +

为了安全策略,一些 Headers对象中的键值对只能客户端去控制。这些key包括Forbidden response header name 和 Forbidden responese header names 。

+ +

语法

+ +
myHeaders.set(name, value);
+ +

参数

+ +
+
name
+
name就是需要对HTTP header 设置新值的key, 一般为字符串。如果设置的name 不是HTTP header规范里面规定的name,那么将会抛出错误"TypeError"。
+
value
+
 value 就是 name 对应的值。
+
+ +

返回

+ +

Void.

+ +

Example

+ +

创建一个新的 Headers 对象:

+ +
var myHeaders = new Headers(); // Currently empty
+ +

你可以用append()方法给Headers 对象增添一个新的键值对,然后用set()方法去改变这个键值对:

+ +
myHeaders.append('Content-Type', 'image/jpeg');
+myHeaders.set('Content-Type', 'text/html');
+
+ +

如果这个键值对不存在,那么set()方法首先创建一个键值对,然后给它赋值。如果这个键值对存在,那么set()方法将会覆盖之前的value值:

+ +
myHeaders.set('Accept-Encoding', 'deflate');
+myHeaders.set('Accept-Encoding', 'gzip');
+myHeaders.get('Accept-Encoding'); // Returns 'gzip'
+ +

如果你需要增加一个键值对,而不是要覆盖之前的键值对,那么你需要用append()方法。

+ +

Specifications

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Fetch','#dom-headers-set','set()')}}{{Spec2('Fetch')}} 
+ +

Browser compatibility

+ + + +

{{Compat("api.Headers.set")}}

+ +

See also

+ + -- cgit v1.2.3-54-g00ecf