猿问

为什么我的Web服务器软件不允许PUT和DELETE请求?

我正在尝试实现REST协议,并且已经实现了尝试调试Web服务器不允许PUT请求的实现。


我已经通过运行测试并进一步确认了这一点:


curl -X PUT  http://www.mywebserver.com/testpage

对于我的Web服务器,哪个返回403- Forbidden错误。


对于DELETE,也一样POST,GET一切都很好。


我想知道这是使用REST的人遇到的常见问题吗,可能的解决方法是什么?


我可以对.htaccess文件进行简单的更改吗?还是我需要修改协议以在POST查询字符串中设置隐藏变量“ _method”?


慕盖茨4494581
浏览 2224回答 1
1回答

哔哔one

通常,Web服务器将被配置为阻止除GET和POST之外的任何内容,因为99%的时间都是它们所需要的,并且过去应用程序存在问题,假设请求是这两个请求之一。您没有说它是哪台服务器,但是,例如,您可以通过指令告诉Apache允许使用哪些方法:例如:<Limit POST PUT DELETE>&nbsp; Require valid-user</Limit>听起来好像有些有用的系统管理员已使用它来阻止非GET / POST您可以尝试.htaccess使用<Limit GET POST PUT DELETE>&nbsp; Allow from all</Limit>(我不是Apache的专家,这可能并不完全正确)
随时随地看视频慕课网APP
我要回答