programing

jQuery에서 PUT/DELETE 요청을 보내는 방법은 무엇입니까?

sourcejob 2023. 5. 24. 22:05
반응형

jQuery에서 PUT/DELETE 요청을 보내는 방법은 무엇입니까?

GET:$.get(..)

POST:$.post()..

때어는?PUT/DELETE?

Ajax 방법을 사용할 수 있습니다.

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

$.ajax 효과가 있을 것입니다.

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

jQuery를 확장하여 PUT 및 DELETE에 대한 바로 가기를 만들 수 있습니다.

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

여기서 복사

제이쿼리 함수를 지정하면 가능할 것 같습니다.

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()방법 매개 변수를 조정한 상태에서.

다음은 JSON을 jQuery > 1.9와 함께 사용하는 경우에 대한 업데이트된 Ajax 호출입니다.

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

다음을 사용할 수 있어야 합니다.

HTTP 요청을 사용하여 원격 페이지를 로드합니다.


또한 다음 옵션을 사용하여 사용할 메서드를 지정할 수 있습니다.

("")POST또는 "GET"), 기본값은 "입니다.GET".
방법: HTTP 요청)PUT그리고.DELETE여기서도 사용할 수 있지만 모든 브라우저에서 지원되는 것은 아닙니다.

아약스 ()

매개 변수 유형 찾기

PUT 및 DELETE와 같은 다른 HTTP 요청 방법도 여기에서 사용할 수 있지만 모든 브라우저에서 지원되는 것은 아닙니다.

간략하게 설명하자면:

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

만약 당신이 만들 필요가 있다면,$.post라라벨로 일하다.Route::delete또는Route::put 단지주을추니다합가장▁an▁add▁argument를 추가하면 ."_method"="delete"또는"_method"="put".

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

다른 사람들을 위해 작동해야 함 프레임워크

참고: Laravel 5.6 및 jQuery 3으로 테스트됨

크로스 브라우저 지원과 함께 여기에 설명된 솔루션을 통합한 jQuery 플러그인을 작성했습니다.

https://github.com/adjohnson916/jquery-methodOverride

확인해 보세요!

CRUD

이것이 더 말이 될 수도 있습니다.

CREATE(POST) 요청

function creat() {
  $.ajax({
    type: "POST",
    url: URL,
    contentType: "application/json",
    data: JSON.stringify(DATA1),
    success: function () {
      var msg = "create successful";
      console.log(msg);
      htmlOutput(msg);
    },
  });
}

읽기(GET) 요청

// GET EACH ELEMENT (UNORDERED)
function read_all() {
  $.ajax({
    type: "GET",
    url: URL,
    success: function (res) {
      console.log("success!");
      console.log(res);
      htmlOutput(res);
    },
  });
}

// GET EACH ELEMENT BY JSON
function read_one() {
  $.ajax({
    type: "GET",
    url: URL,
    success: function (res) {
      $.each(res, function (index, element) {
        console.log("success");
        htmlOutput(element.name);
      });
    },
  });
}

업데이트(PUT) 요청

function updat() {
  $.ajax({
    type: "PUT",
    url: updateURL,
    contentType: "application/json",
    data: JSON.stringify(DATA2),
    success: function () {
      var msg = "update successful";
      console.log(msg);
      htmlOutput(msg);
    },
  });
}

삭제(삭제) 요청

function delet() {
  $.ajax({
    type: "DELETE",
    url: deleteURL,
    success: function () {
      var msg = "delete successful";
      console.log(msg);
      htmlOutput(msg);
    },
  });
}

GitHub 참조

데이터 해시에 값이 'delete'인 _method라는 키를 포함할 수 있습니다.

예:

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

이는 다음에도 적용됩니다.

언급URL : https://stackoverflow.com/questions/2153917/how-to-send-a-put-delete-request-in-jquery

반응형