发布网友 发布时间:2022-04-18 11:48
共3个回答
懂视网 时间:2022-04-18 16:10
本文实例讲述了PHP自定义函数判断是否为Get、Post及Ajax提交的方法。
分享给大家供大家参考,具体如下: (推荐学习:PHP视频教程)
/** * 是否是AJAx提交的 * @return bool */ function isAjax(){ if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ return true; }else{ return false; } } /** * 是否是GET提交的 */ function isGet(){ return $_SERVER['REQUEST_METHOD'] == 'GET' ? true : false; } /** * 是否是POST提交 * @return int */ function isPost() { return ($_SERVER['REQUEST_METHOD'] == 'POST' && checkurlHash($GLOBALS['verify']) && (empty($_SERVER['HTTP_REFERER']) || preg_replace("~https?://([^:/]+).*~i", "\1", $_SERVER['HTTP_REFERER']) == preg_replace("~([^:]+).*~", "\1", $_SERVER['HTTP_HOST']))) ? 1 : 0; }
热心网友 时间:2022-04-18 13:18
$_SERVER['REQUEST_METHOD']该变量中存储的是表单提交的方式。默认为get可用isset($_POST["表单名或字段名"]) 或者$_SERVER['REQUEST_METHOD']=="POST"判断 试过以下是无效的:用$_REQUEST_METHOD 来判断 ,如:<?phpif($_REQUEST_METHOD == “POST”){echo “post:”.$_POST['firstName'].”—”.$_POST["birthday"];热心网友 时间:2022-04-18 14:36
针对跨域情况的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的应用范围比较好。