Surge 使用手册
  • 简介
  • 总览
    • 组件
    • 配置文件
  • 代理规则
    • 域名规则
    • IP 地址规则
    • HTTP 规则
    • 进程规则
    • 逻辑规则
    • 杂项规则
    • 规则集
    • Final 规则
  • 策略
    • 代理策略
    • 内置策略
    • 策略组
  • DNS
    • DNS 服务器
    • 本地 DNS 映射
  • HTTP 处理
    • HTTPS 解密
    • 重写 URL
    • 重写请求头
  • 脚本
    • 基础
    • HTTP 请求
    • HTTP 响应
    • 脚本规则
    • 事件
    • DNS
    • 计划任务
  • 其他
    • 杂项
    • 托管配置
    • 增强模式
    • 网关模式
    • SSID 挂起
    • URL Scheme
    • Snell 服务端
    • 模块
    • DNS over HTTPS
    • HTTP API
  • 更新日志
    • Surge Mac
由 GitBook 提供支持
在本页

这有帮助吗?

导出为 PDF
  1. 脚本

HTTP 响应

用于修改 HTTP 返回体,该类型下第二参数为匹配 URL 的正则表达式,被匹配到的请求会被执行脚本。

传入参数为 $request 和 $response,字段为

  • $request.url<String>:请求的 URL

  • $request.method<String>:请求的 HTTP 方法

  • $response.status<Number>: 响应的 HTTP 状态码

  • $response.headers<Object>: 响应的 HTTP Headers

  • $response.body<String>: 响应的 HTTP Body,以 UTF-8 解码后的字符串,仅当 requires-body=true 时有效

应执行 $done 返回一个对象,可选包含三个字段:

  • body<String>:使用该 body 覆盖原来的响应 body,仅当 requires-body=true 时有效

  • headers<Object>:使用该 headers 词典完全覆盖原来的 headers,注意部分 HTTP 特殊字段不可被修改,如 Content-Length

  • status<Number>:覆盖原来的 HTTP 状态码

使用 $done(); 表示终止该请求;使用 $done({}); 表示不对该请求进行修改。

一个简单样例

let headers = $response.headers;
headers['X-Modified-By'] = 'Surge';

$done({headers});

注意样例使用了 JS ES6 语法。

上一页HTTP 请求下一页脚本规则

最后更新于4年前

这有帮助吗?