![](/img/trans.png)
[英]ajax post to php returns $_SERVER['REQUEST_METHOD'] GET
[英]$_SERVER['REQUEST_METHOD'] and simultaneous POST and GET
当我同时使用POST
和GET
请求时, $_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)
您正在混合这些东西:
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.