AJAX के माध्यम से सीएसवी डाउनलोड कर रहा है

वोट
5

आप AJAX एक वेब अनुप्रयोग से एक उत्पन्न csv फ़ाइल डाउनलोड करने के लिए उपयोग कर सकते हैं? यदि ऐसा है तो करता है किसी को भी है कि मैं की ओर इशारा किया जा सकता है संदर्भ के किसी भी प्रकार है?

संपादित करें: माफ करना, मैं मैं का उपयोग कर रहा प्रोटोटाइप के Ajax.Request और मैं फ़ायरबग की प्रतिक्रिया उपकरण में देखा और उत्पन्न सीएसवी प्रतिक्रिया है उल्लेख किया जाना चाहिए था, मैं सिर्फ यह फाइल को सेव विकल्प के साथ पॉप अप करने के बाद अजाक्स द्वारा तैयार की गई है प्राप्त करने की आवश्यकता ।निवेदन

23/03/2009 को 03:18
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
1

अपने नवीनतम संपादित के प्रकाश में, अपनी CSV फ़ाइल को गति प्रदान एक फ़ाइल डाउनलोड करने के लिए (बजाय ब्राउज़र में प्रतिपादन के), अजाक्स के लिए कोई आवश्यकता नहीं है।

इसके बजाय, समाधान जब CSV फ़ाइल अनुरोध किया जाता है अपने बैक-एंड सिस्टम इस HTTP शीर्ष लेख जोड़ने के लिए है:

Content-disposition: attachment; filename=<your_filename.csv>;

आपका क्रियान्वयन यहाँ बैक-एंड सिस्टम प्रयोग कर रहे हैं पर निर्भर करता है। आप रेल (तरह अपना उपयोगकर्ता नाम पता चलता है) का उपयोग कर रहे हैं, तो यहाँ एक शुरुआत है:

filename = 'your_filename.csv'
headers['Content-Type'] = 'text/plain'
headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
render :layout => false
23/03/2009 को 03:20
का स्रोत उपयोगकर्ता

वोट
0

इसे डाउनलोड करने समस्या नहीं है; क्या आप XmlHttpRequest के माध्यम से की तरह किसी भी डेटा डाउनलोड कर सकते हैं। कठिन हिस्सा यह पार्स करने है। वहाँ regexs से स्ट्रिंग अनुक्रमण के लिए, यह पार्स करने के लिए कई तरीके हैं।

23/03/2009 को 03:22
का स्रोत उपयोगकर्ता

वोट
0

आप डाउनलोड करने के लिए "अजाक्स" का उपयोग कर सकते कुछ भी .. कुछ लोग कह सकते हैं कि आप इसे AJAX नहीं बुलाना चाहिए कि इस मामले में, क्योंकि यह शब्द कड़ाई से एक्सएमएल को डाउनलोड करने के लिए समर्पित है। लेकिन वास्तव में यह सिर्फ एक तंत्र w / ओ एक पृष्ठ फिर से लोड ग्राहक में डेटा प्राप्त करने के लिए है। आप सीएसवी के लिए HTML यह AHAH कहा जा चाहते हैं, लोड हो रहा है रहे थे, तो मैं लगता है कि आप यह AHAC या AJAC फोन होगा? ..

23/03/2009 को 03:26
का स्रोत उपयोगकर्ता

वोट
3

यह अजाक्स अनुरोधों का एक ज्ञात सीमा, आप की तरह जे एस का उपयोग करने की आवश्यकता होगी:

window.location='download-csv.rb';

इसके बजाय एक Ajax अनुरोध का उपयोग करने का। एक अन्य तरीका है एक छिपे हुए Iframe का स्थान बदलने के लिए है, लेकिन यह अपने आप समर्थक के / चोर की है।

आप कोई बात नहीं क्या HTTP हेडर आप भेजने के लिए, 'फ़ाइल को बचाने' संवाद प्रदर्शित करने के लिए एक Ajax अनुरोध प्राप्त कभी नहीं होगा।

13/05/2009 को 20:21
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more