摆在set方法轨XML请求
-
12-09-2019 - |
题
如果我这样做:
curl -X POST -H 'Content-type: application/xml' -d '<person>...</person>' 'http://0.0.0.0:3000/people/12?_method=PUT'
我得到 “只有GET,PUT和DELETE请求是允许的。”为什么?导轨2.3.2
解决方案 2
这实际上是一个故障在轨最近的版本。解决的办法是通过HTTP方法重写报头与放。重要提示:头的全名是http-X-HTTP-方法重写的,但轨道添加HTTP前缀,所以你应该修剪的那部分。
其他提示
卢卡是正确的,你需要与你的要求发送X-HTTP-方法-Override标头。把_method =放在JSON身体没有为我工作。你curl命令行应该是这样的:
curl
-H "X-Http-Method-Override: put"
-H "Content-Type: application/json"
-d "{\"user\":{\"email\":\"blah@example.com\"}}"
www.site.com/users/username.json
有一对夫妇的事情,可能是想错了。
首先,你要发送与POST
一个curl
,但你已经得到了“神奇” _method
参数上您的网址,它的设置为PUT
。基于该误差,这听起来像的Rails正在POST
作为权威请求类型。尝试没有这一点,看看会发生什么。
在一个更行人错误,路由(在config/routes.rb
可被配置为不允许为你行动正在尝试使用POST
请求。
如果您使用的是标准的RESTful控制器,这使得良好的感觉,因为你正在访问一个构件(/people/12
),其通过默认只允许GET
,PUT
,和DELETE
。
我会尝试使用curl -X PUT
和您的要求丢弃?_method=PUT
。
不隶属于 StackOverflow