为什么我的Web服务器软件不允许PUT和DELETE请求?
我试图实现一个REST协议,并已经意识到在尝试debugging我的Web服务器不允许PUT
请求。
我已经testing并通过运行进一步证实了这一点:
curl -X PUT http://www.mywebserver.com/testpage
哪些为我的networking服务器提供403 – 禁止的错误 。
对于DELETE
,同样的情况发生在POST
和GET
一切都很好。
我想知道这是一个常见的问题,那些使用REST的人遇到了什么问题?
我可以对.htaccess
文件进行简单的更改吗? 或者我需要修改协议来设置POST查询string中的隐藏variables“_method”?
通常情况下,Web服务器将被configuration为阻止除GET和POST之外的任何内容,因为99%的时间都是需要的,并且过去应用程序出现了问题,假定请求是这两个请求中的一个。
你不会说它是哪个服务器,但是,例如,你可以告诉Apache允许指令的方法:
例如:
<Limit POST PUT DELETE> Require valid-user </Limit>
这听起来像也许一些有用的系统pipe理员已经使用这个来阻止非GET / POST
你可以试试.htaccess
<Limit GET POST PUT DELETE> Allow from all </Limit>
(我不是apache的专家,这可能不完全正确)