[英]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.