解决ajax请求下无法使用$this->_param获取变量

浏览:2020 发布日期:2013/05/29 分类:技术分享 关键字: ajax param
TP版本:3.13,其它版本应该也类似.
文件:/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......蛋疼扣了一下下.
最佳答案
评论( 相关
后面还有条评论,点击查看>>