आप एक समाधान से मिलता-जुलता साथ करने की कोशिश की है सवाल आप उल्लेख करते हैं (How to alter the headers of a Response?)?
सेवा कार्यकर्ता कुकबुक में, हम मैन्युअल रूप से इंडेक्स डीडी (https://serviceworke.rs/request-deferrer_service-worker_doc.html) में स्टोर करने के लिए अनुरोध ऑब्जेक्ट्स की प्रतिलिपि बना रहे हैं। यह एक अलग कारण के लिए है (हम उन्हें कैश में स्टोर करना चाहते थे, लेकिन हम https://github.com/slightlyoff/ServiceWorker/issues/693 की वजह से POST अनुरोधों को संग्रहीत नहीं कर सकते हैं), लेकिन यह भी लागू होना चाहिए कि आप क्या करना चाहते हैं।
// request is event.request sent by browser here
var req = new Request(request.url, {
method: request.method,
headers: request.headers,
mode: 'same-origin', // need to set this properly
credentials: request.credentials,
redirect: 'manual' // let browser handle redirects
});
आप उपयोग नहीं कर सकते मूल mode
अगर यह navigate
(यही कारण है कि आप एक अपवाद मिल रहे थे है) और तुम है:
// Serialize is a little bit convolved due to headers is not a simple object.
function serialize(request) {
var headers = {};
// `for(... of ...)` is ES6 notation but current browsers supporting SW, support this
// notation as well and this is the only way of retrieving all the headers.
for (var entry of request.headers.entries()) {
headers[entry[0]] = entry[1];
}
var serialized = {
url: request.url,
headers: headers,
method: request.method,
mode: request.mode,
credentials: request.credentials,
cache: request.cache,
redirect: request.redirect,
referrer: request.referrer
};
// Only if method is not `GET` or `HEAD` is the request allowed to have body.
if (request.method !== 'GET' && request.method !== 'HEAD') {
return request.clone().text().then(function(body) {
serialized.body = body;
return Promise.resolve(serialized);
});
}
return Promise.resolve(serialized);
}
// Compared, deserialize is pretty simple.
function deserialize(data) {
return Promise.resolve(new Request(data.url, data));
}
क्या आपको पता है कि क्यों 'नेविगेट' का 'मोड' एक समस्या होगी? – mjs
https://fetch.spec.whatwg.org/#dom-request का चरण 12.1: "अगर अनुरोध का मोड" नेविगेट "है, तो टाइपरर फेंक दें।"। – Marco