You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.1 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. # HTTP 响应
  2. 用于修改 HTTP 返回体,该类型下第二参数为匹配 URL 的正则表达式,被匹配到的请求会被执行脚本。
  3. 传入参数为 `$request``$response`,字段为
  4. * `$request.url<String>`:请求的 URL
  5. * `$request.method<String>`:请求的 HTTP 方法
  6. * `$response.status<Number>`: 响应的 HTTP 状态码
  7. * `$response.headers<Object>`: 响应的 HTTP Headers
  8. * `$response.body<String>`: 响应的 HTTP Body,以 UTF-8 解码后的字符串,仅当 `requires-body=true` 时有效
  9. 应执行 `$done` 返回一个对象,可选包含三个字段:
  10. * `body<String>`:使用该 body 覆盖原来的响应 body,仅当 `requires-body=true` 时有效
  11. * `headers<Object>`:使用该 headers 词典完全覆盖原来的 headers,注意部分 HTTP 特殊字段不可被修改,如 Content-Length
  12. * `status<Number>`:覆盖原来的 HTTP 状态码
  13. 使用 `$done();` 表示终止该请求;使用 `$done({});` 表示不对该请求进行修改。
  14. 一个简单样例
  15. ```javascript
  16. let headers = $response.headers;
  17. headers['X-Modified-By'] = 'Surge';
  18. $done({headers});
  19. ```
  20. 注意样例使用了 JS ES6 语法。