मैं jQuery अजाक्स से कच्चे एक्सएचआर ऑब्जेक्ट को कैसे एक्सेस कर सकता हूं? बात यह है कि, नया XMLHttpRequest स्तर 2 विनिर्देश XHR की एक उप-संपत्ति प्रदान करता है जिसे अपलोड कहा जाता है लेकिन स्पष्ट रूप से jQuery में अभी तक यह नहीं है। मैं jQuery अजाक्स का उपयोग करना जारी रखना चाहता हूं लेकिन मुझे नहीं पता कि वर्तमान jQuery लाइब्रेरी के साथ नई कार्यक्षमता को कैसे विलय करना है।एक्सएचआर लेवल 2 फ़ाइल अपलोड के लिए
उत्तर
JQuery के नए संस्करणों में कच्चे xhr ऑब्जेक्ट jqXhr ऑब्जेक्ट में लपेटा गया है जिसमें xhr की नई अपलोड संपत्ति का कोई संदर्भ नहीं है और दस्तावेज़ीकरण में यह स्पष्ट नहीं है कि इसे कैसे किया जाए। तरह से मैं एक सफल jQuery-ajax-एचटीएमएल 5 फ़ाइल अपलोडर पाने के लिए कुछ अतिरिक्त सेटिंग्स के साथ, यह करने के लिए मिल गया था:
var formData = new FormData($('#myForm')[0]);
$.ajax({
url: 'upload.php',
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress',progressHandlerFunction, false);
}
return myXhr;
},
data: formData,
cache: false,
contentType: false,
processData: false
});
$ .ajaxSettings.xhr() मैं origianal XHR मिलता है, तो मैं परीक्षण के साथ
यदि प्रगति (HTML5?) बार को नियंत्रित करने के लिए प्रगति घटना को बांधने के लिए संपत्ति अपलोड की गई है। अन्य सेटिंग्स मुझे फॉर्मेटा ऑब्जेक्ट के रूप में फॉर्म jquery AJAX के माध्यम से भेजने की अनुमति देती हैं।
डैन्यॉ के उत्तर में थोड़ा बदलाव। मैंने एक jQuery प्लगइन बनाया है जिसे आप इसे आसान बनाने के लिए फ़ाइल इनपुट पर कॉल कर सकते हैं। आप इसे अपनी अपलोड स्क्रिप्ट पास करते हैं, फिर आपकी सफलता फ़ंक्शन और फिर आपकी प्रगति फ़ंक्शन।
$.fn.upload = function(remote,successFn,progressFn) {
return this.each(function() {
var formData = new FormData();
formData.append($(this).attr("name"), $(this)[0].files[0]);
$.ajax({
url: remote,
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload && progressFn){
myXhr.upload.addEventListener('progress',progressFn, false);
}
return myXhr;
},
data: formData,
cache: false,
contentType: false,
processData: false,
complete : function(res) {
if(successFn) successFn(res);
}
});
});
}
प्रयोग
$(".myFile").upload("upload.php",function(res) {
console.log("done",res);
},function(progress) {
console.log("progress", progress);
});
बदलें' myXhr' 'या फिर आप इसे एक वैश्विक चर बना रहे हैं। –
- 1. एक्सएचआर अपलोड प्रगति
- 2. एकाधिक फ़ाइल अपलोड सिम्फनी 2
- 3. Turbogears के साथ फ़ाइल अपलोड 2
- 4. स्ट्रूट्स 2 फ़ाइल अपलोड इंटरसेप्टर कॉन्फ़िगरेशन समस्याएं
- 5. jQuery फ़ाइल अपलोड करेंयूआई फ़ाइल अपलोड करें
- 6. इफ्रेम फ़ाइल अपलोड के लिए प्रगति बार?
- 7. अपलोड फ़ाइल
- 8. फ़ाइल अपलोड के साथ फ़िल्टर फ़ाइल एक्सटेंशन
- 9. एएसपीनेट फ़ाइल अपलोड करने के बाद फ़ाइल अपलोड करें और अपलोड करने के लिए सबमिट करने से पहले
- 10. एचटीएमएल 5 फ़ाइल अपलोड
- 11. सिम्फनी 2 और ट्विग - थीमिंग फ़ाइल अपलोड विजेट
- 12. आप एक सिम्फनी 2 डेटाफिक्चर में फ़ाइल अपलोड कैसे जोड़ेंगे?
- 13. Symfony2: फ़ाइल अपलोड करें
- 14. ASMX फ़ाइल अपलोड
- 15. टॉमकैट 6.0 बड़ी फ़ाइल अपलोड (> 2 जीबी)
- 16. मल्टी लेवल xml jquery
- 17. एस 3 पर ज़िप फ़ाइल अपलोड करने के लिए,
- 18. एएसपी.Net 2 में अपलोड की गई फ़ाइल कहां जाती है?
- 19. रिटर्निंग एक्सएचआर अनुरोध
- 20. एक एक्सएचआर GET अनुरोध
- 21. क्रॉस डोमेन एक्सएचआर
- 22. जावा क्लास लेवल लॉक बनाम ऑब्जेक्ट लेवल लॉक
- 23. मल्टीथ्रेडेड फ़ाइल अपलोड सिंक्रनाइज़ेशन
- 24. ऑडियो प्रोसेसिंग: वॉल्यूम लेवल
- 25. उपयोगकर्ता एक फ़ाइल अपलोड
- 26. लेबलिंग फ़ाइल अपलोड बटन
- 27. फ़ाइल अपलोड बहुत बड़ी
- 28. अपलोड फ़ाइल wcf
- 29. जब किसी अपलोड फ़ाइल
- 30. जावास्क्रिप्ट फ़ाइल अपलोड
जवाब यहाँ है: http://api.jquery.com/jQuery.ajax/ 'वर myXhr को (शीर्षक" jqXHR ऑब्जेक्ट ") –