我第一次部署到AWS,并且遇到了一种非常奇怪的行为。我使用AngularJS,并且有一个函数使用指定的DELETE方法执行$ http服务调用。
var fn = function () {
$http({ method: "DELETE", url: "/active/route/"})
...
当我执行它时,请求会挂起一段时间并被拒绝。
我已将fn更改为
function () {
$http({ method: "POST", url: "/active/route/delete"})
...
它运作得很好。
我想知道beanstalk是否有关于某些HTTP方法的特定策略或导致此行为的原因?
答案 0 :(得分:0)
我知道这已经相当不活跃了一段时间,但我弄清楚我的情况发生了什么,并认为我会在这里发布给其他需要它的人。如果您发送包含请求正文的请求,基本上http DELETE方法不会很好。纯RESTful服务应该使用URI来传回对象ID并形成,而不是在请求体中形成数据。当数据通过请求主体传递时,一些Web服务器会将其作为POST方法读取,这会对您的API造成严重破坏。
在我的情况下,我在URI中传递了对象id,并且作为我的架构的副作用,在请求体中传递。除DELETE外,所有情况下都可以正常工作。为了解决这个问题,我只是删除了不必要的请求主体和中提琴!
希望这有助于某人。
有关更多详细信息,请参阅此帖子:
http://www.spenceruresk.com/2011/11/http-delete-requests-that-include-a-body/