2010-11-11 16 views
13

यह ठीक काम करता है:jQuery.ajax रिटर्न 400 गलत अनुरोध

jQuery('#my_get_related_keywords').click(function() { 
    if (jQuery('#my_keyword').val() == '') return false; 
     jQuery.getJSON("http://boss.yahooapis.com/ysearch/web/v1/" 
     +jQuery('#my_keyword').val()+"?" 
     +"appid=myAppID" 
     +"&lang=en" 
     +"&format=json" 
     +"&count=50" 
     +"&view=keyterms" 
     +"&callback=?", 
     function (data) {//do something} 

यह रिटर्न 400 गलत अनुरोध (jQuery ऊपर की बस पुनर्निर्माण .ajax का उपयोग कर त्रुटि हैंडलिंग का समर्थन करने के लिए)।

jQuery('#my_get_related_keywords').click(function() 
    { 
    if (jQuery('#my_keyword').val() == '') return false; 
    jQuery('#my_loader').show(); 
    jQuery.ajax(
     { 
     url: "http://boss.yahooapis.com/ysearch/web/v1/" 
     +jQuery('#my_keyword').val()+"?" 
     +"appid=myAppID" 
     +"&lang=en" 
     +"&format=json" 
     +"&count=50" 
     +"&view=keyterms" 
     +"&callback=?", 
     success: function(data) 
      {//do something} 
+0

क्या आपको कहीं भी विधि (पोस्ट या प्राप्त) जोड़नी है? – Jan

उत्तर

15

मुझे लगता है कि तुम सिर्फ 2 और अधिक विकल्प (contentType और dataType) जोड़ने की जरूरत:

$('#my_get_related_keywords').click(function() { 

    $.ajax({ 
      type: "POST", 
      url: "HERE PUT THE PATH OF YOUR SERVICE OR PAGE", 
      data: '{"HERE YOU CAN PUT DATA TO PASS AT THE SERVICE"}', 
      contentType: "application/json; charset=utf-8", // this 
      dataType: "json", // and this 
      success: function (msg) { 
       //do something 
      }, 
      error: function (errormessage) { 
       //do something else 
      } 
     }); 
} 
+0

त्वरित मदद टोरो के लिए धन्यवाद। @ प्रकाश भी सही था। –

11

अपने ajax कॉल करने के लिए इस जोड़ें:

contentType: "application/json; charset=utf-8", 
dataType: "json" 
+0

धन्यवाद। वह यह था। @ टोरो बस आपको इसे हराया :) –

6

देर जवाब है, लेकिन मैं समझ यह अद्यतन रखने के लायक है। अद्यतन jQuery एपीआई और .success/.error बहिष्कृत तरीकों को प्रतिबिंबित करने के लिए एंड्रिया टूररी उत्तर पर विस्तार।

jQuery 1.8 के रूप में। * ऐसा करने का पसंदीदा तरीका है .done() और .fail() का उपयोग करना। Jquery Docs

उदा।

$('#my_get_related_keywords').click(function() { 

    var ajaxRequest = $.ajax({ 
     type: "POST", 
     url: "HERE PUT THE PATH OF YOUR SERVICE OR PAGE", 
     data: '{"HERE YOU CAN PUT DATA TO PASS AT THE SERVICE"}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json"}); 

    //When the request successfully finished, execute passed in function 
    ajaxRequest.done(function(msg){ 
      //do something 
    }); 

    //When the request failed, execute the passed in function 
    ajaxRequest.fail(function(jqXHR, status){ 
     //do something else 
    }); 
}); 
संबंधित मुद्दे