文件:/Lib/Core/App.class.php
大概在220行,
// 获取变量 支持过滤和默认值 调用方式
$this->_post($key,$filter,$default);
case '_get' : $input =& $_GET;break;
case '_post' : $input =& $_POST;break;
case '_put' : parse_str(file_get_contents('php://input'), $input);break;
case '_param' :
switch($_SERVER['REQUEST_METHOD']) {
case 'POST':
$input = $_POST;
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}把上面一段中的 case '_param': 简单小改下:case '_param' :
$request_method = IS_AJAX ? 'AJAX' : $_SERVER['REQUEST_METHOD'];
switch($request_method) {
case 'POST':
$input = $_POST;
break;
case 'AJAX':
$input = array_merge($_POST, $_GET);
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}也就是把获取当前请求方法给提取出来,加个IS_AJAX的判断,是AJAX的话,合并POST和GET的变量,发现这个问题是因为我在使用一个Jquery插件Tags Manager时,它提供的一个AjaxPush方法好像只能带GET参数,而本身通过AJAX提交输入的tag却是POST方法,我又想在控制器中把通过AJAX
和通过表单Form直接提交的两种方式兼容,So......蛋疼扣了一下下.
最佳答案