【发布时间】:2020-09-10 12:43:34
【问题描述】:
我想使用 Javascript serviceworker 来记录传出请求。我目前的做法是这样的:
self.addEventListener('fetch', function(event) {
var req = new Request("https://example.com?url=" + encodeURI(event.request.url), {
method: event.request.method,
headers: event.request.headers,
body: event.request.body
});
fetch(req);
});
这适用于 GET 请求,但不适用于 body 的 POST/PUT 请求。我尝试使用body: event.request.body.blob(),但也没有用。
有没有一种简单的方法可以在 serviceworkers 中访问获取的请求的主体并将其重新发送到其他地方?
【问题讨论】:
-
event.request.body是一个ReadableStream,所以应该没问题传递给Request,就像你尝试过的那样。但是不要指望.blob()能起作用,ReadableStreams没有这样的方法……
标签: javascript service-worker fetch-api