繁体   English   中英

$ _SERVER ['REQUEST_METHOD']以及同时POST和GET

[英]$_SERVER['REQUEST_METHOD'] and simultaneous POST and GET

当我同时使用POSTGET请求时, $_SERVER['REQUEST_METHOD']设置为POST。

为什么是这样? 是因为无论如何所有请求都被视为GET

这是我针对此问题的要求。

a = $("#AdminAddForm").serialize();
jQuery.post('index.php?test=yes', a);

$ _POST和$ _GET都在此请求后填充,并且$ _SERVER ['REQUEST_METHOD']设置为POST。

HTTP协议具有第一行,称为“请求行”。 帖子看起来像这样:

POST http://website.com/route/whatever HTTP/1.1

... (post body)

请注意,请求行和帖子正文之间的强制空行。

现在,当您还有一个这样的查询字符串时:

POST http://website.com/route/whatever?q=hello HTTP/1.1

... (post body)

您正在混合这些东西:

  • 方法POST;
  • POST的正文(包含表格的内容);
  • 查询字符串。

HTTP请求 POST,但在PHP中,查询字符串中的内容仍将以$ _GET全局变量结尾。

您可以在HTTP POST中具有GET参数,因为HTTP协议允许将POST正文与查询字符串混合。

当我同时使用POST和GET请求时

这是不可能的。

您可能正在发出一个在URL上具有查询字符串的POST请求。

PHP将使用查询字符串中的数据填充$_GET ,但这与request方法绝对无关。 它只是PHP奇怪的(错误的)命名约定之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM