边缘开发者平台
  • 边缘函数
    • 概述
    • 快速指引
    • 操作指引
      • 函数管理
      • 触发配置
    • Runtime APIs
      • addEventListener
      • Cache
      • Cookies
      • Encoding
      • Fetch
      • FetchEvent
      • Headers
      • Request
      • Response
      • Streams
        • ReadableStream
        • ReadableStreamBYOBReader
        • ReadableStreamDefaultReader
        • TransformStream
        • WritableStream
        • WritableStreamDefaultWriter
      • Web Crypto
      • Web standards
      • Images
        • ImageProperties
    • 示例函数
      • 返回 HTML 页面
      • 返回 JSON
      • Fetch 远程资源
      • 请求头鉴权
      • 修改响应头
      • AB 测试
      • 设置 Cookie
      • 基于请求区域重定向
      • Cache API 使用
      • 缓存 POST 请求
      • 流式响应
      • 合并资源流式响应
      • 防篡改校验
      • m3u8 改写与鉴权
      • 图片自适应缩放
      • 图片自适应 WebP
      • 自定义 Referer 限制规则
      • 远程鉴权
      • HMAC 数字签名
      • 自定义下载文件名
      • 获取客户端 IP
    • 最佳实践
      • 通过边缘函数实现自适应图片格式转换

Headers

Headers 基于 Web APIs 标准 Headers 进行设计。可用于 HTTP request 和 response 的头部操作。

构造函数

const headers = new Headers(init?: object | Array<[string, string]> | Headers);

参数

参数名称
类型
必填
说明
init
初始化 Headers 对象,参数类型说明如下:



object


构造函数将会枚举 Object 包含的所有可枚举属性,并初始化到新的 Headers 对象中。



Array<[string, string]>


数组的每一个元素为 key/value 的键值对(如:[key, value]),构造函数遍历数组,并初始化到新的 Headers 对象中。



Headers


拷贝 Headers 对象,并把所有字段初始化到新的 Headers 对象中。




方法

append

headers.append(name: string, value: string): void;
headers 对象指定的 header 上追加一个新值,若 header 不存在,则直接添加。

参数

属性名
类型
必填
说明
name
string
header 名
value
string
追加的新值


delete

headers.delete(name: string): void;
headers 对象中删除指定 header。

参数

属性名
类型
必填
说明
name
string
header 名


entries

headers.entries(): iterator;
获取 headers 对象所有的键值对([name, value])数组,返回值参考 MDN 官方文档:iterator

forEach

headers.forEach(callback: (name: string, value: string) => void | number): void;
遍历 headers 对象所有的 header。若 callback 返回非零值,表示终止遍历。
注意
forEach 为非 Web APIs 标准方法。为了提供高效遍历 headers 的方式,边缘函数基于 Web APIs 标准进行了扩展实现。

get

headers.get(name: string): string;
headers 对象中获取指定 header 的值。

getSetCookie

headers.getSetCookie(): Array<string>
该方法返回一个数组,包含 Set-Cookie 头部的所有值。

has

headers.has(name: string): boolean;
判断 headers 对象是否包含该指定 header。

keys

headers.keys(): iterator;
获取 headers 对象包含的所有 key,返回值参考 MDN 官方文档:iterator

set

headers.set(name: string, value: string): void;
设置 headers 对象的指定 header 值,若该 header 不存在,则添加一个新的 key/value 键值对。

values

headers.values(): iterator;
获取 headers 对象包含的所有 value,返回值参考 MDN 官方文档:iterator

示例代码

function handleEvent() {
const headers = new Headers({
'my-header-x': 'hello world',
});

const response = new Response('hello world', {
headers,
});
return response;
}

addEventListener('fetch', (event) => {
event.respondWith(handleEvent(event));
});

相关参考