GET
:$.get(..)
POST
:$.post()..
किस बारे में PUT/DELETE
?
GET
:$.get(..)
POST
:$.post()..
किस बारे में PUT/DELETE
?
जवाबों:
आप अजाक्स विधि का उपयोग कर सकते हैं :
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
PUT
या DELETE
अनुरोध 404 त्रुटियां वापस कर रहे हैं, तो आपको IIS में इन क्रियाओं को सक्षम करने की आवश्यकता होगी। मैंने इसे एक अच्छा संसाधन पाया है: geekswithblogs.net/michelotti/archive/2011/05/28/…
"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
method
याtype
$.ajax
काम करेगा।
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
contentType: "application/json"
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);
})
निर्दिष्ट करके JQuery के अजाक्स फ़ंक्शन के साथ संभव हो सकता है
type: "put"
या
type: "delete"
और सभी ब्राउज़रों द्वारा समर्थित नहीं है, लेकिन उनमें से अधिकांश।
संगतता के बारे में अधिक जानकारी के लिए इस प्रश्न को देखें:
क्या अधिकांश वेब ब्राउज़र में PUT, DELETE, HEAD, आदि विधियाँ उपलब्ध हैं?
से यहाँ , आप यह कर सकते हैं:
/* 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()
अनुकूलित विधि के पैरामीटर के साथ सिर्फ एक प्रति है ।
आप का उपयोग करने में सक्षम होना चाहिए jQuery.ajax
:
HTTP अनुरोध का उपयोग करके एक दूरस्थ पृष्ठ लोड करें।
और आप निर्दिष्ट कर सकते हैं कि type
विकल्प के साथ किस विधि का उपयोग किया जाना चाहिए :
अनुरोध करने का प्रकार ("
POST
" या "GET
"), डिफ़ॉल्ट "GET
" है।
नोट: अन्य HTTP अनुरोध विधियां, जैसे किPUT
औरDELETE
, यहां भी उपयोग की जा सकती हैं, लेकिन वे सभी ब्राउज़रों द्वारा समर्थित नहीं हैं।
PUT
या DELETE
?
संक्षिप्तता के लिए:
$.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
});
}
आप इसे 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
}
});
मैंने एक jQuery प्लगइन लिखा है जिसमें क्रॉस-ब्राउज़र समर्थन के साथ चर्चा किए गए समाधान शामिल हैं:
https://github.com/adjohnson916/jquery-methodOverride
इसकी जांच - पड़ताल करें!
यदि आपको $.post
एक लारवेल के लिए काम करने की ज़रूरत है Route::delete
या Route::put
बस एक तर्क जोड़ें "_method"="delete"
या "_method"="put"
।
$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...
दूसरों के फ्रेमवर्क के लिए काम करना चाहिए
नोट: लारवेल 5.6 और jQuery 3 के साथ परीक्षण किया गया
आप अपने डेटा हैश में एक कुंजी को शामिल कर सकते हैं, जिसका नाम है: _method जिसका मूल्य 'हटाना' है।
उदाहरण के लिए:
data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
alert('Yupi Yei. Your product has been deleted')
});
इसके लिए भी आवेदन करेंगे
यहाँ एक सरल एक-लाइनर है जिसका उपयोग मैं एक से अधिक चर डालने के लिए करता हूँ:
$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});