2013-08-14 7 views
12

मैं फ़ंक्शन को हर बार res.reply = 2 पर कॉल करता हूं, लेकिन ऐसे मामले हैं जो res खाली है। जब लौटाया गया मूल्य खाली होता है console.log("error") आक्रमण किया जाता है। यह jQuery मोबाइल के पुराने संस्करणों में काम करता है। अब संस्करण 1.3.2 है।jQuery AJAX कॉल रिक्त त्रुटि देता है यदि सामग्री खाली है

function getResult() 
{ 
    request = $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: "json", 
     data: { 
      .... 
     }, 
     error: function() {   
      console.log("error"); 
     }, 
     success: function(res) { 
      if(res.reply=='2') { 
       getResult(); 
      }   
     } 
    }); 
} 
+1

jQuery 1.3.2 के साथ सहायता की अपेक्षा थोड़ा ... * आशावादी * है। आप वर्तमान संस्करण का उपयोग क्यों नहीं करते? – lonesomeday

+0

'त्रुटि' हैंडलर को मारना जरूरी नहीं है कि प्रतिक्रिया खाली है - इसका सबसे अधिक मतलब है कि सर्वर पर किसी त्रुटि के कारण प्रतिक्रिया पुनर्प्राप्त नहीं की जा सकी। फ़ायरबग में नेटवर्क यातायात की जांच करें और त्रुटि के लिए आपका सर्वर लॉग इन करें। –

+1

आपको क्या त्रुटि मिल रही है .. आप 'त्रुटि: फ़ंक्शन (xhr, err) { console.log (xhr); console.log (err) के साथ जांच सकते हैं; } ' – Pranav

उत्तर

23
dataType: "json" 

का अर्थ है: मुझे json देते हैं, और कुछ नहीं। कोई रिक्त स्ट्रिंग ताकि कोई रिक्त स्ट्रिंग मतलब यह है कि यह एक सफलता नहीं था प्राप्त करने, json नहीं है ...

request = $.ajax({ 
    type: "POST", 
    url: url, 
    data: { 
     .... 
    }, 
    error: function() {   
     console.log("error"); 
    }, 
    success: function(res) { 
     var response = jQuery.parseJSON(res); 
     if(typeof response == 'object'){ 
      if(response.reply == '2') { 
       getResult(); 
      } 
     } else { 
       //response is empty 
     } 
    } 
}); 
0

सामान्य रूप से ऐसा लगता है कि आप एक JSON प्रतिक्रिया चाहते हैं, तो मैं अपने डेटाप्रकार करने के लिए "नहीं बदलेगा पाठ ", इसके बजाय मैं सर्वर को एक वैध JSON प्रतिक्रिया वापस करने के लिए प्राप्त करूंगा, भले ही प्रतिक्रिया खाली हो "{}" के बजाय ""।

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