POST请求被服务器视为GET

时间:2013-09-27 11:07:57

标签: apache rest httpverbs

这里有一个非常奇怪的问题。将帖子请求发送到我的PHP脚本时

$_SERVER['REQUEST_METHOD'] 

返回" GET"而不是" POST"。

它适用于所有其他REST方法

所以这就是我得到的

GET -> GET
POST-> GET
PUT -> PUT
DELETE -> DELETE

它只发生在我的一台服务器上,所以我假设它是一个apache问题而且我设法弄清楚它只会在我添加" www&#34时发生;到我的网址。

I.e

www.something.com

会导致问题,但

something.com

没有

我已经在同一台服务器上的不同网站上进行了测试,我得到了相同的东西,所以我假设它的全局配置。

任何想法

1 个答案:

答案 0 :(得分:3)

正如HTTP spec所说的响应代码301和302:

  

注意:由于历史原因,用户代理可以更改请求方法   从POST到GET以获得后续请求。如果出现这种情况   不期望的是,可以使用307(临时重定向)状态代码   代替

第三种(但不太可能)的可能性是你得到了对初始URI的303响应。解决方案有两个方面:

  • 将您控制的客户端配置为POST到规范URI,以便它们不会被重定向。
  • 在这种情况下,使用307将服务器配置为重定向,而不是301/302。