2011-11-07 79 views
34

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

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

回答

-2

What's the difference between a POST and a PUT HTTP REQUEST?

PUT不接受参数。这是一个“放置”资源的地方。所以我不认为你会得到参数,除非它在URL中,这可能不是你想要做的。

+3

请参阅:http://stackoverflow.com/questions/630453/put-vs-post-in-rest'PUT'和'POST'都可以用来发送数据,它只是改变HTTP方法名称AFAIK。 –

62

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

文档 -

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

具有例如在小提琴和形式参数被传递精(因为它是把它不会被附加到url) -

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

Demo从jQuery的1.3.2测试起上铬。

+0

您是否尝试过在服务器端获取参数?我使用getParameter()在doPut()和参数不传递 –

+0

检查http://stackoverflow.com/questions/855835/servlet-parameters-and-doput – Jayendra

+0

我试过使用HttpRequest和相同的结果,所以它不是jquery的错,但为什么最新的Chrome不会传递PUT参数? –

6

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

-5

用途:

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

一定要记住使用_METHOD=PUT

+0

我通常会建议不要将数据解析为字符串,因为这可以防止应用程序变为动态并且比简单的对象数组更难读取。另外,你可以使用'type:'PUT''来替代数据。 – Jono20201