带有参数的jQuery Ajax PUT

看来使用jQuery Ajax POST会传递参数,但PUT会传递参数不。 我查看了当前的jQuery代码,但不存在PUT和DELETE。 我看着1.4.2 jQuery,PUT和DELETE在那里。

使用当前版本的jQuery通过PUT请求传递参数的解决方法是什么?

andrei g asked 2020-06-29T19:25:55Z
5个解决方案
78 votes

您能否提供一个示例,因为put应该也可以正常工作?

文档-

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

将示例放在小提琴中,并且可以很好地传递form参数(因为它不会被附加到url)-

$.ajax({
  url: '/echo/html/',
  type: 'PUT',
  data: "name=John&location=Boston",
  success: function(data) {
    alert('Load was performed.');
  }
});

在Chrome上从jQuery 1.3.2开始测试了该演示。

Jayendra answered 2020-06-29T19:26:51Z
12 votes

您可以使用PUT方法并传递将包含在请求正文中的数据:

let data = {"key":"value"}

$.ajax({
    type: 'PUT',
    url: 'http://example.com/api',
    contentType: 'application/json',
    data: JSON.stringify(data), // access in body
}).done(function () {
    console.log('SUCCESS');
}).fail(function (msg) {
    console.log('FAIL');
}).always(function (msg) {
    console.log('ALWAYS');
});
ow3n answered 2020-06-29T19:27:11Z
8 votes

对于像我一样在这里结束的其他人,您可以使用AJAX对参数进行PUT,但它们将作为主体而不是作为查询字符串发送。

Dan Mandle answered 2020-06-29T19:27:31Z
-4 votes

用:

$.ajax({
    url: 'feed/4', type: 'POST', data: "_METHOD=PUT&accessToken=63ce0fde", success: function(data) {
        console.log(data);
    }
});

始终记住使用_METHOD=PUT

user3623446 answered 2020-06-29T19:27:55Z
-13 votes

POST和PUT HTTP REQUEST有什么区别?

PUT不接受参数。 这是“放置”资源的地方。 因此,我认为您不会使用参数,除非参数在URL中,这可能不是您想要的。

mattw1 answered 2020-06-29T19:26:13Z
translate from https://stackoverflow.com:/questions/8032938/jquery-ajax-put-with-parameters