हमारे आवेदन में हम परिदृश्य निम्नलिखित लागू करने की आवश्यकता:AJAX अनुरोध का उपयोग कर फ़ाइल डाउनलोड करने का कोई तरीका क्यों नहीं है?
- एक अनुरोध ग्राहक से भेज
- सर्वर अनुरोध हैंडल और
- सर्वर रिटर्न जवाब में दायर फ़ाइल उत्पन्न है
- ग्राहक ब्राउज़र को प्रदर्शित करता है फ़ाइल डाउनलोड पॉपअप संवाद और उपयोगकर्ता को फ़ाइल डाउनलोड करने की अनुमति देता है
हमारा आवेदन AJAX आधारित एप्लिकेशन है, इसलिए यह बहुत आसान और संयोजक होगा हमारे लिए AJAX अनुरोध भेजने के लिए ent (जैसे jquery.ajax()
फ़ंक्शन का उपयोग करना)।
लेकिन गूगिलिंग के बाद, यह पता चला कि गैर-AJAX POST अनुरोध (जैसे this popular SO thread में वर्णित) का उपयोग करते समय फ़ाइल डाउनलोड करना संभव है। इसलिए हमें uglier और अधिक जटिल समाधान को लागू करने की आवश्यकता थी जिसके लिए नेस्टेड छिपे हुए फ़ील्ड के साथ form
की HTML संरचना का निर्माण करना आवश्यक था।
क्या कोई साधारण शब्दों में समझा सकता है कि AJAX अनुरोधों को फ़ाइल डाउनलोड करने के लिए क्यों उपयोग नहीं किया जा सकता है? उसके पीछे यांत्रिकी क्या है?
यह तथ्य इस तथ्य के कारण है कि AJAX के माध्यम से पुनर्प्राप्त सब कुछ जावास्क्रिप्ट "स्मृति" में जाता है। और आप जावास्क्रिप्ट मेमोरी में फ़ाइल नहीं चाहते हैं, इसलिए आपकी सबसे अच्छी शर्त http://stackoverflow.com/questions/3502267/download-a-file-using-ajax (बलुससी का उत्तर) – Najzero
[विकिपीडिया] (http: // en.wikipedia.org/wiki/Ajax_(programming)): '... मौजूदा पृष्ठ के प्रदर्शन और व्यवहार में हस्तक्षेप किए बिना सर्वर को डेटा को पुनर्प्राप्त करें।' इसलिए यह पृष्ठ और डेटा में हस्तक्षेप नहीं करेगा केवल जावास्क्रिप्ट मेमोरी स्पेस में संग्रहीत किया जाएगा। –
[एजेक्स पोस्ट से हैंडल फ़ाइल डाउनलोड] के संभावित डुप्लिकेट [http://stackoverflow.com/a/23797348/148271) – IsmailS