JQuery में PUT / DELETE अनुरोध कैसे भेजें?


जवाबों:


924

आप अजाक्स विधि का उपयोग कर सकते हैं :

$.ajax({
    url: '/script.cgi',
    type: 'DELETE',
    success: function(result) {
        // Do something with the result
    }
});

65
बस एक नोट, यदि आप एक IIS वेबसर्वर का उपयोग कर रहे हैं और jquery PUTया DELETEअनुरोध 404 त्रुटियां वापस कर रहे हैं, तो आपको IIS में इन क्रियाओं को सक्षम करने की आवश्यकता होगी। मैंने इसे एक अच्छा संसाधन पाया है: geekswithblogs.net/michelotti/archive/2011/05/28/…
टिमडॉग

22
BE AWARE: "The type of request to make ("POST" or "GET"), default is "GET". Note: Other HTTP request methods, such as PUT and DELETE, can also be used here, but they are not supported by all browsers."from: api.jquery.com/jQuery.ajax/#options
औरलैब्स

23
@andi stackoverflow.com/questions/1757187/… के अनुसार IE6 से कोई भी ब्राउज़र इन http तरीकों का समर्थन करता है। जब तक आप एक प्राचीन ब्राउज़र के लिए विकसित नहीं कर रहे हैं , आप "GET" और "POST" से परे http तरीकों का सुरक्षित रूप से उपयोग कर सकते हैं।
मार्टिन कार्नी

1
इसके अलावा, आप फॉर्म डेटा में पास नहीं हो सकते । इसे यूआरआई से होकर गुजरना पड़ता है।
जेवियर

6
संस्करणों के लिए 1.9 के बाद आप उपयोग कर सकते हैं methodयाtype
साइटों

124

$.ajax काम करेगा।

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});

4
PUT की जरूरत हैcontentType: "application/json"
KingRider

3
क्या इस उत्तर और डारिन दिमित्रोव के बीच कोई अंतर है? मुझे लगता है कि वे दोनों एक ही समय में बनाए गए थे, और इसलिए कोई साहित्यिक चोरी नहीं थी, लेकिन मैं नहीं देखता कि यह उत्तर क्या जोड़ता है (940 प्रतिष्ठा के अलावा जैकब के लिए)।
एंड्रयू ग्रिम

72

PUT और DELETE के शॉर्टकट बनाने के लिए हम jQuery का विस्तार कर सकते हैं:

jQuery.each( [ "put", "delete" ], function( i, method ) {
  jQuery[ method ] = function( url, data, callback, type ) {
    if ( jQuery.isFunction( data ) ) {
      type = type || callback;
      callback = data;
      data = undefined;
    }

    return jQuery.ajax({
      url: url,
      type: method,
      dataType: type,
      data: data,
      success: callback
    });
  };
});

और अब आप उपयोग कर सकते हैं:

$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
   console.log(result);
})

यहां से कॉपी करें


हटाए जाने के दौरान डेटा की उम्मीद नहीं है, यह कहना नहीं है कि $ .get और $।
Post के

1
@FranciscoPresencia - 1. डिलीट डेटा की उम्मीद नहीं करता है जबकि डाल करता है ----> तीसरी लाइन इस परिदृश्य को संभालती है। 2. बिल और .post में अलग-अलग हस्ताक्षर हो सकते हैं ----> यह केवल अतिरिक्त jquery तरीके बना रहा है। हटाने के लिए और डाल दिया। पाने और पोस्ट करने के अपने तरीके हैं।
महेश

30

निर्दिष्ट करके JQuery के अजाक्स फ़ंक्शन के साथ संभव हो सकता है

type: "put" या type: "delete"

और सभी ब्राउज़रों द्वारा समर्थित नहीं है, लेकिन उनमें से अधिकांश।

संगतता के बारे में अधिक जानकारी के लिए इस प्रश्न को देखें:

क्या अधिकांश वेब ब्राउज़र में PUT, DELETE, HEAD, आदि विधियाँ उपलब्ध हैं?


10

से यहाँ , आप यह कर सकते हैं:

/* Extend jQuery with functions for PUT and DELETE requests. */

function _ajax_request(url, data, callback, type, method) {
    if (jQuery.isFunction(data)) {
        callback = data;
        data = {};
    }
    return jQuery.ajax({
        type: method,
        url: url,
        data: data,
        success: callback,
        dataType: type
        });
}

jQuery.extend({
    put: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'PUT');
    },
    delete_: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'DELETE');
    }
});

यह मूल रूप से $.post()अनुकूलित विधि के पैरामीटर के साथ सिर्फ एक प्रति है ।


9

जब आप JSON के साथ JSON> 1.9 का उपयोग कर रहे हैं, तो इसके लिए एक अद्यतन अजाक्स कॉल है:

$.ajax({
    url: '/v1/object/3.json',
    method: 'DELETE',
    contentType: 'application/json',
    success: function(result) {
        // handle success
    },
    error: function(request,msg,error) {
        // handle failure
    }
});

5

आप का उपयोग करने में सक्षम होना चाहिए jQuery.ajax:

HTTP अनुरोध का उपयोग करके एक दूरस्थ पृष्ठ लोड करें।


और आप निर्दिष्ट कर सकते हैं कि typeविकल्प के साथ किस विधि का उपयोग किया जाना चाहिए :

अनुरोध करने का प्रकार (" POST" या " GET"), डिफ़ॉल्ट " GET" है।
नोट: अन्य HTTP अनुरोध विधियां, जैसे कि PUTऔर DELETE, यहां भी उपयोग की जा सकती हैं, लेकिन वे सभी ब्राउज़रों द्वारा समर्थित नहीं हैं।


4
क्या आप जानते हैं कि कौन से ब्राउज़र समर्थन नहीं करते हैं PUTया DELETE?
ली हेस

4
टूटे हुए, यदि वे HTTP: ^) में सक्षम नहीं हैं
XTL

4

ajax ()

परम प्रकार की तलाश करें

अन्य HTTP अनुरोध विधियां, जैसे PUT और DELETE, का उपयोग यहां भी किया जा सकता है, लेकिन वे सभी ब्राउज़रों द्वारा समर्थित नहीं हैं।


3

संक्षिप्तता के लिए:

$.delete = function(url, data, callback, type){

  if ( $.isFunction(data) ){
    type = type || callback,
    callback = data,
    data = {}
  }

  return $.ajax({
    url: url,
    type: 'DELETE',
    success: callback,
    data: data,
    contentType: type
  });
}

कोई डेटा फ़ील्ड नहीं, जो मुझे लगता है
Bob

1

आप इसे AJAX के साथ कर सकते हैं!

के लिए PUTविधि:

$.ajax({
  url: 'path.php',
  type: 'PUT',
  success: function(data) {
    //play with data
  }
});

के लिए DELETEविधि:

$.ajax({
  url: 'path.php',
  type: 'DELETE',
  success: function(data) {
    //play with data
  }
});

7
इस उत्तर को पोस्ट करने से पहले ही यह कहा गया था। यह सिर्फ शोर है, पूरी तरह से कुछ भी नया नहीं है।
शैडो विजार्ड ईयर फॉर यू


0

यदि आपको $.postएक लारवेल के लिए काम करने की ज़रूरत है Route::deleteया Route::putबस एक तर्क जोड़ें "_method"="delete"या "_method"="put"

$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...

दूसरों के फ्रेमवर्क के लिए काम करना चाहिए

नोट: लारवेल 5.6 और jQuery 3 के साथ परीक्षण किया गया


-1

आप अपने डेटा हैश में एक कुंजी को शामिल कर सकते हैं, जिसका नाम है: _method जिसका मूल्य 'हटाना' है।

उदाहरण के लिए:

data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
  alert('Yupi Yei. Your product has been deleted')
});

इसके लिए भी आवेदन करेंगे


3
यह सिर्फ एक पोस्ट करता है।
ctrl-alt-delor

1
यह रेल के साथ काम करेगा, _method का उपयोग POST पर http तरीकों को सुरंग करने के लिए किया जाता है (हालांकि आपको शायद केवल रूपों के साथ इसका उपयोग करना चाहिए - वे केवल प्राप्त / पोस्ट करने में सक्षम हैं)।
ऑप्सब

यदि आप इसे POST विधि के साथ फ़ॉर्म से कर रहे हैं, तो यह Laravel के साथ भी काम करेगा।
जॉन शिप 19

-1

यहाँ एक सरल एक-लाइनर है जिसका उपयोग मैं एक से अधिक चर डालने के लिए करता हूँ:

$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});


यह jQuery के आउट-ऑफ-द-बॉक्स के साथ काम नहीं करता है।
कॉलिन टी हार्ट

यह नोड / एक्सप्रेस में काम करता है
डेविड व्हाइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.