2015-01-20 9 views
5

मैं कोड है किjQuery AJAX अनुरोध घटनाओं - किया, असफल, सफलता

var ajaxrequest = $.ajax({ 
      type: "POST", 
      dataType: "json", 
      url: "xy.php", 
      data: { 
       action : "read" 
      } 
      }).fail(function(){ 
       //something to do when ajaxreq fails 
      }).done(function(data){ 

       //something to do when ajaxreq is done 
      }); 

की तरह यह कोई समस्या नहीं काम कर रहा है है। मेरा सवाल यह है कि यह क्यों काम नहीं करता है:

var ajaxrequest = $.ajax({ 
      type: "POST", 
      dataType: "json", 
      url: "n3_vaje_api.php", //Relative or absolute path to response.php file 
      data: { 
       action : "read", 
      }, 
      fail:function(){ 
       //something to do when ajaxreq fails 
      }, 
      done:function(data){ 
       //something to do when ajaxreq is done 
      } 
     }); 

विफल और किए गए उदाहरण केवल उदाहरण हैं, अगर अंदर उपयोग किए जाने पर काम भी पूरा नहीं होता है। लेकिन यह का उपयोग कर बाहर की तरह:

ajaxrequest.complete(f(){}); 

ठीक काम कर रहा है ... मैं बजाय पता किया मैं सफलता का उपयोग करना चाहिए, लेकिन यहाँ मेरी बात नहीं thats की। यहां क्या सौदा है?

+1

आप वोट दें और जवाब को स्वीकार के रूप में यह आप के लिए काम किया 'उपयोग करने के लिए success' और' error' –

+0

न भूल जाते हैं की जरूरत है .. –

उत्तर

4

आप सफलता और त्रुटि उपयोग करने की आवश्यकता विधि आप आप अपने दूसरे विकल्प

इस वादे के बिना ajax अनुरोध है, जहां आप पैरामीटर

के रूप में सफलता और त्रुटि समारोह हो रही है के उदाहरण है उपयोग करना चाहते हैं उपयोग करने की आवश्यकता है
$.ajax({url:"demo_test.txt" 
     ,error : function (xhr,status,error) 
     { //alert error} 
     ,success:function(result){ 
     $("#div1").html(result); 
    }}); 

पहले opetion आपको लगता है कि requst ajax द्वारा वादा वस्तु वापसी उपयोग कर रहे हैं कारण है कि आप किया है और असफल विधि हो रहे है।

इस आप बस $ .post $ .ajax और json के बजाय चौथे तर्क के रूप में इस्तेमाल कर सकते हैं वादा वस्तु का उदाहरण है, में नीचे दिए गए उदाहरण अनुरोध वादा वस्तु

var request = $.ajax({ 
    url: "script.php", 
    type: "POST", 
    data: { id : menuId }, 
    dataType: "html" 
}); 

request.done(function(msg) { 
    $("#log").html(msg); 
}); 

request.fail(function(jqXHR, textStatus) { 
    alert("Request failed: " + textStatus); 
}); 
+0

हूं.मैं थोड़े धन्यवाद अब समझ में – zmajeric

+0

@ user3271259 - आप jQuery साइट पर वादा वस्तु के बारे में पढ़ सकते हैं या google ... और उत्तर को हटाने और उत्तर स्वीकार करने के लिए मत भूलना –

-1

है।

$.post("n3_vaje_api.php", {action : "read"}, function(response) { 
    // Do something with the request 
}, 'json') 
.done(function() { 
    alert("second success"); 
    }) 
    .fail(function() { 
    alert("error"); 
    }) 
    .always(function() { 
    alert("finished"); 
}); 
+0

यह एक स्कूल असाइनमेंट है और मैंने पहली चीज़ का उपयोग किया जो मुझे काम कर रहा था। इसके अलावा AJAX अनुरोध की आवश्यकता थी ताकि मेरा विकल्प था। – zmajeric

0

डेप्रिकेशन नोटिस: jqXHR.success(), jqXHR.error(), और jqXHR.complete() कॉलबैक jQuery 3.0 के रूप में निकाल दिए जाते हैं। आप इसके बजाय jqXHR.done(), jqXHR.fail(), और jqXHR.always() का उपयोग कर सकते हैं।

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