【发布时间】:2016-11-21 12:25:54
【问题描述】:
我目前正在尝试使用 service worker fetch 事件,使用 fetch API 向服务器发送请求并获取 HTML。我遇到的问题涉及 POST 请求。当我在有 POST 时尝试执行此操作时,我会丢失 POST 请求中的所有标头(需要将数据添加到服务器以获取帖子)。我正在尝试手动抓取标题并将它们添加到提取中,但没有任何运气。这是我当前的 fetch 事件代码:
self.addEventListener("fetch", function(event) {
var acceptHeader = event.request.headers.get('Accept');
//fetch options used for post requests
var fetchOptionsForPost = {
method: "post",
headers: event.request.headers,
credentials: event.request.credentials
}
//if it's a post request,
if( acceptHeader.indexOf('text/html') > -1 && event.request.method == "POST" ) {
var updatedFetch = fetch( event.request, fetchOptionsForPost).then(function(updatedResponse) {
//do something with response here.
});
}
});
更新:
试一试 crdumoul 的建议并给出以下控制台错误:
ServiceWorker.js:52 Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'ServiceWorkerGlobalScope': Cannot construct a Request with a Request whose mode is 'navigate' and a non-empty RequestInit.
at TypeError (native)
at [URL to service worker]
【问题讨论】:
标签: javascript fetch service-worker