2013-10-30 9 views
6

समस्या:HTTP अनुरोध बंद हो जाता है JQuery ajax कॉल

साइट मैं निर्माण कर रहा हूँ, मैं दो JQuery ajax लंबे मतदान लगातार लंबित कॉल नहीं है। अब मैं एक फ़ाइल डाउनलोड सुविधा डालने की कोशिश कर रहा हूं, ताकि जब लिंक दबाया जाए तो उपयोगकर्ता को SaveAs बॉक्स से संकेत मिलेगा। फ़ाइल का यह डाउनलोड ठीक काम कर रहा है, समस्या यह है कि जब लिंक दबाया जाता है तो दो AJAX कॉल रद्द कर दिए जाते हैं।

मैं कोशिश कर रहा हूं कि अजाक्स कॉल रद्द नहीं हो या अजाक्स कॉल को सीधे स्थापित करने की संभावना हो।

एचटीएमएल:

<a href="/test" id="testfile">Tasks</a> 

जे एस:

यहाँ लिंक के लिए कोड है

$(document).on('click',"#testfile",function(event){ 
    event.preventDefault(); 
    var href=$(this).attr('href'); 
    window.location.href = href; 
    updater();        /* AJAX CALL #1 */ 
    notifier();        /* AJAX CALL #2 */ 
}); 

मैं क्या कोशिश की है:

मैं मैं ऊपर कोड डाउनलोड शुरू करने के बाद दो AJAX कॉल को कॉल करने का प्रयास कर रहा था। ये काम नहीं कर रहा है। अगर मैं कुछ देरी करता हूं ताकि डाउनलोड पूरा होने के बाद कॉल शुरू हो जाएं तो यह काम करता है लेकिन फाइलों को बड़ा होने के कारण देख रहा है और इसलिए यह एक बुरा समाधान है, यह एक बुरा समाधान है।

मैं वास्तव में उलझन में हूं कि AJAX कॉल क्यों रद्द किए जा रहे हैं? क्या ऐसा इसलिए है क्योंकि जब मैं लिंक दबाता हूं तो पृष्ठ को अनलोड किया जा रहा है?

देख रहा है क्योंकि मैं केवल एक थ्रेड के साथ विकास सर्वर पर चल रहा हूं, नया AJAX कॉल करता है कि मैं लिंक का पालन करने के बाद सही सेट अप करने का प्रयास कर रहा हूं क्योंकि सर्वर व्यस्त है, क्या यह मामला हो सकता है?


हल:

मैं साइट के स्थित बटन को एक छिपा iframe जोड़ा गया है और यह है कि मेरे लिंक के साथ लक्षित साथ। मैंने जेएस कोड भी हटा दिया, क्योंकि AJAX कॉल अब रद्द नहीं किए जा रहे हैं।

कोड अब इस तरह देख रहा है:

HTML:

<a href="/test" target="filetargetframe" id="testfile">Tasks</a> 

******** 

<iframe name="filetargetframe" style="display:none"></iframe> 
+3

'window.location.href' पेज बदलता है, और है कि सब कुछ रोक देता है। Src = href के साथ 'iframe' बनाने का प्रयास करें, शायद यह काम करेगा। – yoavmatchulsky

+0

तो घटना खिड़की। स्थान।href मेरे मामले में पृष्ठ को नहीं बदलता है, लेकिन सिर्फ एक फ़ाइल का डाउनलोड शुरू किया गया है, ब्राउज़र अभी भी इसे एक बदले हुए पृष्ठ के रूप में देखता है और इसलिए AJAX कॉल रोकता है? मैं आईफ्रेम के साथ इस बारे में कैसे जा सकता हूं? – ReturnToZero

+0

नहीं, यह डाउनलोड होने पर पृष्ठ को नहीं बदलता है। आप एक आईफ्रेम का उपयोग करने का प्रयास कर सकते हैं, लेकिन संदेह है कि आपको एक ही समस्या होगी। Iframe का उपयोग करने के लिए, अपने पृष्ठ पर एक आईफ्रेम रखें, इसे छुपाएं (वैकल्पिक), और फिर एंकर टैग पर लक्ष्य = "theiframeid" जोड़ें और डिफ़ॉल्ट कार्रवाई को रोकने से रोकें। (और location.href को बदलना बंद करें, एंकर की डिफ़ॉल्ट क्रिया को उस पर क्लिक करें) –

उत्तर

4

समस्या yoavmatchulsky से उत्तर का उपयोग करना हल किया गया था:

मैं साइट के स्थित बटन को एक छिपा iframe जोड़ा और लक्षित के साथ कि मेरे लिंक के साथ। मैंने जेएस कोड भी हटा दिया, क्योंकि AJAX कॉल अब रद्द नहीं किए जा रहे हैं।

कोड अब इस तरह देख रहा है:

HTML:

<a href="/test" target="filetargetframe" id="testfile">Tasks</a> 

******** 

<iframe name="filetargetframe" style="display:none"></iframe> 
संबंधित मुद्दे