नहीं कहा जा रहा है, मैं "AJAX" का उपयोग कर फ़ाइल अपलोड करने की कोशिश कर रहा हूं, फ़ाइल में डेटा संसाधित करता हूं और फिर उस डेटा को यूआई में वापस कर देता हूं ताकि मैं स्क्रीन को गतिशील रूप से अपडेट कर सकूं।jquery AJAX फॉर्म सफलता कॉलबैक को
मैं जावास्क्रिप्ट के लिए http://jquery.malsup.com/form/ पर पाया गया है और बैक एंड पर Django का उपयोग कर JQuery अजाक्स फॉर्म प्लगइन, jquery.form.js का उपयोग कर रहा हूं। फॉर्म जमा किया जा रहा है और बैक एंड पर प्रसंस्करण किसी समस्या के बिना चल रहा है, लेकिन जब सर्वर से प्रतिक्रिया प्राप्त होती है, तो मेरा फ़ायरफ़ॉक्स ब्राउज़र मुझे "एप्लिकेशन/जेसन" प्रकार की फ़ाइल डाउनलोड/खोलने के लिए संकेत देता है। फ़ाइल में जेसन सामग्री है जिसे मैं ब्राउज़र पर भेजने की कोशिश कर रहा हूं।
मुझे विश्वास नहीं है कि मैं जेसन भेज रहा हूं क्योंकि मेरे पास एक मॉड्यूलरलाइज्ड json_wrapper()
फ़ंक्शन है जो मैं इस एप्लिकेशन में कई स्थानों पर उपयोग कर रहा हूं।
यहाँ के बाद Django टेम्पलेट्स लागू किए जाते हैं कि मेरी प्रपत्र लग रहा है:
<form method="POST" enctype="multipart/form-data" action="/test_suites/active/upload_results/805/">
<p>
<label for="id_resultfile">Upload File:</label>
<input type="file" id="id_resultfile" name="resultfile">
</p>
</form>
आप किसी भी बटन क्योंकि मैं और एक बटन के साथ प्रस्तुत फोन कर रहा हूँ और कहाँ से ajaxSubmit() का उपयोग कर रहा प्रस्तुत नहीं देखेंगे jquery.form.js प्लगइन।
function upload_results($dialog_box){
$form = $dialog_box.find("form");
var options = {
type: "POST",
success: function(data){
alert("Hello!!");
},
dataType: "json",
error: function(){
console.log("errors");
},
beforeSubmit: function(formData, jqForm, options){
console.log(formData, jqForm, options);
},
}
$form.submit(function(){
$(this).ajaxSubmit(options);
return false;
});
$form.ajaxSubmit(options);
}
आप देख सकते हैं, मैं सफलता कॉलबैक फ़ंक्शन काम को देखने के लिए बेताब मिल गया है और केवल एक चेतावनी संदेश सफलता पर बनाया है:
यहाँ नियंत्रित जावास्क्रिप्ट कोड है। हालांकि, हम उस कॉल तक कभी नहीं पहुंचते हैं। इसके अलावा, error
फ़ंक्शन नहीं कहा जाता है और beforeSubmit
फ़ंक्शन निष्पादित किया जाता है।
फ़ाइल है कि मैं वापस पाने के निम्नलिखित सामग्री है:
{"count": 18, "failed": 0, "completed": 18, "success": true, "trasaction_id": "SQEID0.231"}
मैं निरूपित करने के लिए किया जाए या नहीं सर्वर पद आदेश पर्याप्त रूप से चलाने के लिए सक्षम था 'सफलता' यहाँ का उपयोग करें। यदि यह असफल रहा तो परिणाम कुछ ऐसा दिखाई देगा:
{"success": false, "message":"<error_message>"}
आपका समय और सहायता बहुत सराहना की जाती है। मैंने इस पर कुछ दिन बिताए हैं और आगे बढ़ना पसंद करेंगे।
क्या 'त्रुटि' कॉल निष्पादित है? या 'पहले सबमिट करें'? फायरबग या क्रोम में वास्तविक प्रतिक्रिया की जांच करने से यह देखने में मदद मिलेगी कि वास्तव में क्या वापस आ रहा है। –
नहीं, त्रुटि कॉल निष्पादित नहीं होता है लेकिन पहले सबमिट करता है। हम यह भी जानते हैं कि सबमिट करने से पहले सब कुछ ठीक काम कर रहा है, क्योंकि सर्वर साइड प्रसंस्करण ठीक से चल रहा है। –
@ माइकल - आप फायरबग/क्रोम/फिडलर नेट पैनल में क्या प्रतिक्रिया देख रहे हैं? –