POST请求视为由服务器GET(POST Requests seen as GET by serve

2019-10-18 16:26发布

这里有一个非常奇怪的问题。 当发送POST请求我的PHP脚本

$_SERVER['REQUEST_METHOD'] 

返回“GET”,而不是“POST”的。

它工作正常的所有其他REST方法

所以这是我所得到的

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

它只是发生在我的服务器,所以我假定这是一个Apache的问题,我已经设法弄清楚,它只有当我添加的“www”我的URL会发生之一。

www.something.com

造成问题,但

something.com

才不是

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

有什么想法吗

Answer 1:

作为HTTP规范说为响应代码301和302:

注意:由于历史原因,用户代理可以从POST改变请求方法来获取用于后续请求。 如果这种行为是不想要的,307(临时重定向)状态代码可以用来代替

第三个(但不太可能)可能性你得到一个303响应初始URI。 解决的办法是双重的:

  • 配置哪些是你控制下的客户端发布到规范的URI,使他们不会在所有重定向。
  • 配置您的服务器在这种情况下,而不是301/302使用307重定向。


文章来源: POST Requests seen as GET by server