কীভাবে jQuery এ একটি PUT / DELETE অনুরোধ পাঠাতে হবে?


উত্তর:


924

আপনি আজাক্স পদ্ধতিটি ব্যবহার করতে পারেন :

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

65
কেবলমাত্র একটি নোট, যদি আপনি একটি আইআইএস ওয়েবসভার ব্যবহার করছেন এবং জ্যাকোয়ারি PUTবা DELETEঅনুরোধগুলি 404 ত্রুটি ফিরিয়ে দিচ্ছে, আপনাকে আইআইএসে এই ক্রিয়াগুলি সক্ষম করতে হবে। আমি এটি একটি ভাল সংস্থান হিসাবে পেয়েছি: geekswithblogs.net/michelotti/archive/2011/05/28/…
টিমডগ

22
সচেতন থাকুন: "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."থেকে: api.jquery.com/jQuery.ajax/#options
andilabs

23
প্রতি @andi হিসাবে stackoverflow.com/questions/1757187/... সমর্থন এই HTTP পদ্ধতি উপর IE6 থেকে কোন ব্রাউজার। আপনি যদি কোনও প্রাচীন ব্রাউজারের জন্য বিকাশ না করেন তবে আপনি নিরাপদে "জিইটি" এবং "পোস্ট" এর বাইরে http পদ্ধতি ব্যবহার করতে পারেন।
মার্টিন কার্নে

1
এছাড়াও, আপনি ফর্ম ডেটাতে পাস করতে পারবেন না । এটি ইউআরআই মাধ্যমে যেতে হবে।
জাভিয়েয়ার

6
সংস্করণের জন্য 1.9 পরে আপনি ব্যবহার করতে পারেন methodবাtype
সাইটগুলিতে

124

$.ajax কাজ করবে.

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

4
contentType: "application/json"
পুট

3
এই উত্তর এবং দারিন দিমিত্রভের মধ্যে কি কোনও পার্থক্য রয়েছে? আমি ধরে নিই যে এগুলি উভয় একই সময়ে তৈরি হয়েছিল, এবং তাই কোনও চৌর্যবৃত্তি হয়নি, তবে উত্তরটি কী যুক্ত করে তা আমি দেখতে পাই না (940 জ্যাকব-এর খ্যাতি বাদে)।
অ্যান্ড্রু গ্রিম

72

আমরা পুট এবং ডিলিটের শর্টকাটগুলি তৈরি করতে 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 .get এবং $। পোষ্টটিতে আলাদা আলাদা স্বাক্ষর থাকতে পারে যখন আপনি এখানে একে হার্ডকড করছেন
ফ্রান্সিসকো প্রেজেন্সিয়া

1
@ ফ্রেঞ্চিস্কো প্রেনসেসিয়া - ১. মুছে ফেলার সময় ডেটা আশা করা যায় না ----> তৃতীয় লাইনটি এই দৃশ্যটি পরিচালনা করে ২ 2. .গেট এবং p .পোস্টে আলাদা স্বাক্ষর থাকতে পারে ----> এটি কেবল অতিরিক্ত জেকোরি পদ্ধতি তৈরি করছে মুছুন এবং রাখার জন্য পান এবং পোস্ট করুন তাদের নিজস্ব jquery পদ্ধতি আছে।
মহেশ 3

30

উল্লেখ করে JQuery এর এজ্যাক্স ফাংশন দিয়ে সম্ভব বলে মনে হচ্ছে

type: "put" অথবা type: "delete"

এবং সমস্ত ব্রাউজার দ্বারা সমর্থিত নয়, তবে বেশিরভাগগুলি।

সামঞ্জস্যতা সম্পর্কিত আরও তথ্যের জন্য এই প্রশ্নটি দেখুন:

বেশিরভাগ ওয়েব ব্রাউজারে কি পুট, ডিলেট, হেড ইত্যাদি পদ্ধতি পাওয়া যায়?


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

আপনি jQuery> 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"।
দ্রষ্টব্য: অন্যান্য এইচটিটিপি অনুরোধ পদ্ধতি যেমন PUTএবং এর DELETEজন্যও এখানে ব্যবহার করা যেতে পারে তবে সেগুলি সমস্ত ব্রাউজার দ্বারা সমর্থিত নয়।


4
আপনি কি জানেন কোন ব্রাউজারগুলি সমর্থন করে না PUTবা DELETE?
লেয়া হেইস

4
ভাঙা লোকেরা, তারা HTTP: ^) সক্ষম না হলে
XTL

4

Ajax ()

পরম ধরণের জন্য দেখুন

অন্যান্য HTTP অনুরোধ পদ্ধতি যেমন PUT এবং মুছে ফেলাও এখানে ব্যবহার করা যেতে পারে তবে সেগুলি সমস্ত ব্রাউজার দ্বারা সমর্থিত নয়।


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
  });
}

আমার কোনও ডেটা ফিল্ড অনুমান করা যায় না
বব

1

আপনি এজেএক্স দিয়ে এটি করতে পারেন!

জন্য 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একটি Laravel কাজ Route::deleteবা Route::putশুধু একটি যুক্তি যোগ "_method"="delete"বা "_method"="put"

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

অন্যদের ফ্রেমওয়ার্কের জন্য অবশ্যই কাজ করা উচিত

দ্রষ্টব্য: লারাভেল 5.6 এবং jQuery 3 এর সাথে পরীক্ষিত


-1

আপনি নিজের ডেটা হ্যাশটিতে একটি কীটি অন্তর্ভুক্ত করতে পারেন: _ 'মুছে ফেলুন' এর মান সহ।

উদাহরণ স্বরূপ:

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
এটি রেলগুলির সাথে কাজ করবে, _পথের মধ্যবর্তী সময়ে HTTP পদ্ধতিগুলি সুড়ঙ্গ করতে ব্যবহৃত হয় (যদিও আপনার সম্ভবত এটি ফর্মগুলির সাথেই ব্যবহার করা উচিত - তারা কেবল পোষ্ট / পোস্ট করতে সক্ষম)।
opsb

আপনি যদি পোষ্ট পদ্ধতিতে কোনও ফর্ম থেকে এটি করেন তবে লারাভেলের সাথেও এটি কাজ করবে।
জন শিপ

-1

একাধিক ভেরিয়েবল রাখার জন্য আমি এখানে একটি সাধারণ এক-লাইনার ব্যবহার করেছি:

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


এটি বাক্সের বাইরে jQuery নিয়ে কাজ করে না।
কলিন 'হার্ট

এটি নোড / এক্সপ্রেসে কাজ করে
ডেভিড হোয়াইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.