PHP 判断请求是POST还是GET?

 我来答
阳光的宁娜
高粉答主

推荐于2019-11-11 · 每个回答都超有意思的
知道小有建树答主
回答量:91
采纳率:100%
帮助的人:1.5万
展开全部

针对跨域情况的getjson 或者ajax(jsonp)可以使用ACCEPT请求头部格式来判断

PHP端对应$_SERVER['HTTP_ACCEPT']

jsonp的请求一般是:text/javascript, application/javascript, */*

json的请求:application/json, text/javascript, */*

一个简单的判断跨域条件下的ajax请求:

switch ($_SERVER['HTTP_ACCEPT']){      case 'application/json, text/javascript, */*':          //  JSON 格式          break;      case 'text/javascript, application/javascript, */*':          // javascript 或 JSONP 格式          break;      case 'text/html, */*':          //  HTML 格式          break;      case 'application/xml, text/xml, */*':          //  XML 格式          break;  

顾名思义。

GET,POST分别对应着获取和提交两个方面。

在实际使用中,GET是用来取数据的,像跳转到什么页面。做一些逻辑判断。
POST大多是表单提交。很不推荐使用表单得时候使用get,除非像我上面说得,你得行为是为了获取数据。GET从逻辑上会更好理解一点。

而PHP很简单,把GET和POST统一化了,简便放入一个变量中。再不必去理解整个请求的逻辑。所以在php中,会很少去考虑是用post还是get。个人觉得还是上述得理由来区分post和get的应用范围比较好。





淡淡的雷人生活
2018-10-18 · TA获得超过2399个赞
知道小有建树答主
回答量:440
采纳率:87%
帮助的人:72.9万
展开全部

PHP 全局变量 - 超全局变量 - 【$_SERVER】

判断请求是GET:

$_SERVER['REQUEST_METHOD'] == 'GET' ? true : false

判断请求是POST:

$_SERVER['REQUEST_METHOD'] == 'POST' ? true : false

另外判断请求是AJAX:

((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') || !empty($_POST[C('VAR_AJAX_SUBMIT')]) || !empty($_GET[C('VAR_AJAX_SUBMIT')])) ? true : false

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式