development

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

big-blog 2020. 2. 10. 22:17
반응형

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

여기 에서 복사


JQuery의 ajax 함수 로 지정할 수있는 것으로 보입니다.

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()method 매개 변수가 적용된 사본입니다 .


jQuery> 1.9와 함께 JSON을 사용할 때 업데이트 된 ajax 호출은 다음과 같습니다 .

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

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

HTTP 요청을 사용하여 원격 페이지를로드하십시오.


type옵션을 사용하여 사용해야하는 방법을 지정할 수 있습니다 .

요청 유형 ( " POST"또는 " GET")이며 기본값은 " GET"입니다.
참고 : 같은 다른 HTTP 요청 방법, PUT그리고 DELETE, 여기 사용할 수 있지만 모든 브라우저에서 지원되지 않습니다.


아약스 ()

param type을 찾으십시오

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

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

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

확인 해봐!


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

데이터 해시에 값이 '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')
});

이것은 또한 적용됩니다


하나 이상의 변수를 넣는 데 사용하는 간단한 하나의 라이너가 있습니다.

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

$.post라벨에 작품 을 만들 Route::delete거나 Route::put인수 또는를 추가 해야하는 "_method"="delete"경우 "_method"="put".

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

다른 사람을 위해 작동해야합니다

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

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



반응형