2014-06-29 9 views
5

मैं 3 सेकंड के बाद AJAX त्रुटि कॉलबैक फ़ंक्शन बनाने में सक्षम नहीं हूं। मैंने टाइमआउट के साथ प्रयास किया, लेकिन यह निर्दिष्ट समय के बाद त्रुटि कॉलबैक पर स्विच नहीं करेगा! मैं चेतावनी Got timeout प्राप्त करने में सक्षम नहीं हूं।AJAX पोस्ट अनुरोध में काम नहीं कर रहा

जब मैंने इसी साइट पर समान समस्याओं के साथ समान प्रश्नों का उल्लेख किया तो इससे मदद नहीं मिली। वे सभी AJAX GET प्रकार का उपयोग करते हैं। मैं jquery 1.10.1 पुस्तकालय का उपयोग कर रहा हूँ।

स्क्रिप्ट:

$.ajax({ 
    type: 'POST', 
    timeout: 3000, 
    url : "http://mydomain/Services.asmx/Best_Scores", 
    dataType: "text", 
    async:false, 
    crossDomain:true, 
    data: "strJsonRequest="+scoredata, 
    success: function (data) { 
    // Success code ... 
    }, 
    error: function (data, textStatus, errorThrown) { 
    if(textStatus == "timeout") { 
     alert("Got timeout"); 
    } 
    } 
}); 

किसी भी समाधान?

+0

आरटीटी कितनी देर तक http: // mydomain/Services.asmx/Best_Scores' पर ले जाता है? शायद यूआरएल बस समय नहीं निकालता है? – Amberlamps

+0

@Amberlamps: उत्तर के लिए धन्यवाद, मुझे 15-20 सेकंड लगेंगे! – byJeevan

+0

क्या आपने त्रुटि फ़ंक्शन में कुछ चेतावनी देने का प्रयास किया जो कि कथन में नहीं है? शायद 'टेक्स्टस्टैटस' "टाइमआउट" नहीं है ?! – Amberlamps

उत्तर

13

फिक्स:

बदलें async : falseasync: true को

कारण:

एक तुल्यकालिक AJAX कॉल ब्लॉक जब तक अनुरोध समाप्त कर दिया गया। तकनीकी कारणों से एक टाइमआउट लागू करना संभव नहीं है, क्योंकि AJAX कॉल को बाद में निष्पादित करना होगा।

यदि किसी एजेक्स कॉल को बाद में निष्पादित किया जाता है, तो किसी भी तरह से फ़ंक्शन को ब्लॉकिंग सुविधा को कार्यान्वित करना होगा, कोड को AJAX कॉल के बाद आगे चलने से रोकने के लिए, और एक टाइमआउट के बाद इसे फिर से निष्पादित करना - संभव नहीं है।

संबंधित मुद्दे