如何在jQuery中发送PUT / DELETE请求?

时间:2010-01-28 10:55:37

标签: jquery httprequest put

GET$.get(..)

POST$.post()..

PUT/DELETE怎么样?

15 个答案:

答案 0 :(得分:865)

您可以使用ajax方法:

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

答案 1 :(得分:115)

$.ajax可以使用。

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

答案 2 :(得分:71)

我们可以扩展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);
})

here

复制

答案 3 :(得分:29)

通过指定

,似乎可以使用JQuery's ajax function

type: "put"type: "delete"

并不是所有浏览器都不支持,但大多数浏览器都不支持。

有关兼容性的更多信息,请查看此问题:

Are the PUT, DELETE, HEAD, etc methods available in most web browsers?

答案 4 :(得分:9)

here开始,你可以这样做:

/* 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()的副本,其方法参数已经过调整。

答案 5 :(得分:7)

以下是对jQuery使用JSON时更新的ajax调用> 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
    }
});

答案 6 :(得分:5)

您应该可以使用jQuery.ajax

  

使用HTTP加载远程页面   请求。


您可以使用type option

指定应使用的方法
  

要求的类型(“POST”或   “GET”),默认为“GET”。
注意:其他   HTTP请求方法,例如PUT和   DELETE,也可以在这里使用,但是   它们并非所有人都支持   浏览器。

答案 7 :(得分:4)

ajax()

寻找param 类型

此处也可以使用其他HTTP请求方法,例如PUT和DELETE,但并非所有浏览器都支持它们。

答案 8 :(得分:3)

为简洁起见:

{{1}}

答案 9 :(得分:2)

你可以用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
  }
});

答案 10 :(得分:1)

您可以在数据哈希中包含一个名为:_method的键,其值为'delete'。

例如:

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

这也适用于

答案 11 :(得分:1)

我编写了一个jQuery插件,其中包含了此处讨论的解决方案以及跨浏览器支持:

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

看看吧!

答案 12 :(得分:0)

这是一个简单的单行代码,我用来放置多个变量:

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

答案 13 :(得分:0)

如果您需要对Laravel function addResizeListener(elem, fun) { let id; let style = getComputedStyle(elem); let wid = style.width; let hei = style.height; id = requestAnimationFrame(test) function test() { let newStyle = getComputedStyle(elem); if (wid !== newStyle.width || hei !== newStyle.height) { fun(); wid = newStyle.width; hei = newStyle.height; } id = requestAnimationFrame(test); } } let test = document.querySelector('.test'); addResizeListener(test,function () { console.log("I changed!!") }); $.post进行Route::delete的工作,只需添加参数Route::put"_method"="delete"

"_method"="put"

必须为其他框架工作

  

注意:已通过Laravel 5.6和jQuery 3测试

答案 14 :(得分:0)

1)GET:-当客户端在Web服务器上请求资源时使用。

2)HEAD:-当客户端请求有关资源的某些信息但不请求资源本身时使用。

3)POST:-在客户端向服务器发送信息或数据时使用,例如,填写在线表格(即,向Web服务器发送大量复杂数据)。

4)PUT:-在客户端发送替换文档或将新文档上载到请求URL下的Web服务器时使用。

5)删除:-当客户端尝试从Web服务器中删除由请求URL标识的文档时使用。

6)跟踪:-当客户端询问可用代理或中间服务器更改请求以宣布自己的情况时使用。

7)选项:-当客户端想要确定其他可用方法来检索或处理Web服务器上的文档时使用。

8)CONNECT:-当客户端想要建立到远程主机的透明连接时使用,通常用于通过HTTP代理促进SSL加密的通信(HTTPS)。