अधिक आधुनिक दृष्टिकोण की तलाश करने वालों के लिए, आप इसका उपयोग कर सकते हैं fetch API। निम्न उदाहरण दिखाता है कि स्प्रेडशीट फ़ाइल को कैसे डाउनलोड किया जाए। यह आसानी से निम्नलिखित कोड के साथ किया जाता है।
fetch(url, {
body: JSON.stringify(data),
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
})
.then(response => response.blob())
.then(response => {
const blob = new Blob([response], {type: 'application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = downloadUrl;
a.download = "file.xlsx";
document.body.appendChild(a);
a.click();
})
मेरा मानना है कि इस दृष्टिकोण को अन्य XMLHttpRequestसमाधानों की तुलना में समझना बहुत आसान है । इसके अलावा, यह jQueryदृष्टिकोण के लिए एक समान वाक्यविन्यास है , बिना किसी अतिरिक्त पुस्तकालयों को जोड़ने की आवश्यकता के बिना।
निश्चित रूप से, मैं आपको सलाह दूंगा कि आप किस ब्राउज़र को विकसित कर रहे हैं, क्योंकि यह नया दृष्टिकोण IE पर काम नहीं करेगा। आप निम्न लिंक पर पूर्ण ब्राउज़र संगतता सूची पा सकते हैं ।
महत्वपूर्ण : इस उदाहरण में मैं दिए गए सर्वर पर एक JSON अनुरोध भेज रहा हूं url। इसे urlसेट किया जाना चाहिए, मेरे उदाहरण पर मैं आपको इस भाग को जानता हूं। इसके अलावा, काम करने के आपके अनुरोध के लिए आवश्यक हेडर पर विचार करें। चूँकि मैं JSON भेज रहा हूँ, मुझे Content-Typeहेडर जोड़ना होगा और इसे सेट करना होगा application/json; charset=utf-8, जैसा कि सर्वर को यह पता चलेगा कि उसे किस प्रकार का अनुरोध प्राप्त होगा।