2016-02-08 8 views
5

मैंने fetch ईवेंट पर किसी सेवा कर्मचारी में POST अनुरोध को कैश करने का प्रयास किया।सेवा श्रमिक POST अनुरोधों को कैश कर सकते हैं?

मैंने cache.put(event.request, response) का उपयोग किया, लेकिन लौटा दिया गया वादा TypeError: Invalid request method POST. से अस्वीकार कर दिया गया था।

जब मैंने एक ही पोस्ट एपीआई को मारने का प्रयास किया, caches.match(event.request) मुझे अपरिभाषित कर रहा था।

लेकिन जब मैंने जीईटी विधियों के लिए ऐसा किया, तो यह काम करता था: caches.match(event.request) एक जीईटी अनुरोध के लिए मुझे एक प्रतिक्रिया दे रही थी।

सेवा श्रमिक POST अनुरोधों को कैश कर सकते हैं? यदि वे नहीं कर सकते हैं, तो ऐप्स को वास्तव में ऑफ़लाइन बनाने के लिए हम किस दृष्टिकोण का उपयोग कर सकते हैं?

+0

इसे बस कोशिश करना बहुत आसान होना चाहिए :) – Marco

उत्तर

13

आप कैश एपीआई का उपयोग कर POST अनुरोधों को कैश नहीं कर सकते हैं। https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-put-method (बिंदु 2.2) देखें।

कल्पना भंडार में एक संबंधित चर्चा नहीं है: https://serviceworke.rs/request-deferrer.html मूल रूप से, समाधान IndexedDB पर अनुरोध serializes: https://github.com/slightlyoff/ServiceWorker/issues/693

एक दिलचस्प समाधान ServiceWorker कुकबुक में प्रस्तुत किया है।

संबंधित मुद्दे