Cakephp Ajax发布的数据在set方法中不起作用

时间:2015-05-18 09:43:58

标签: ajax cakephp cakephp-2.6

我正在尝试将一个数据从一个视图发送到另一个控制器,并为另一个视图设置数据。这是ajax代码正常工作

$.ajax({  
         url: "<?php echo Router::url(array('controller'=>'users','action'=>'exchange_process'));?>",  
                      type: "POST",  
                      data: {"point_origin": point_origin },  
                      success: function(){              
                             alert("success");  
                 }
        });

在控制器中,我已通过以下代码

收到此数据
public function exchange_process()
    {
        if($this->request->is(array('post', 'ajax'))) {
            $point_origin=$_POST['point_origin'];
        }

        $this->set("pointorg",$point_origin);
    }

在另一个视图中,我尝试过

<?php echo $pointorg ?>

它不能正常工作。

如果我尝试

 public function exchange_process()
        {
            if($this->request->is(array('post', 'ajax'))) {
               // $point_origin=$_POST['point_origin'];
            }

            $point_origin=123;
            $this->set("pointorg",$point_origin);
        }

它正在工作,但如果我尝试

 public function exchange_process()
            {
                if($this->request->is(array('post', 'ajax'))) {
                   // $point_origin=$_POST['point_origin'];
                   $point_origin=123;
                }


                $this->set("pointorg",$point_origin);
            }

它不能正常工作。

2 个答案:

答案 0 :(得分:0)

将您的if子句更改为:

if($this->request->is('post') || $this->request->is('ajax')) {

它应该可以正常工作

答案 1 :(得分:0)

CakePHP 2.3不支持类型标题数组,请检查

http://book.cakephp.org/2.0/en/appendices/2-4-migration-guide.html#cakerequest

只有在仅使用Ajax发送请求时,您才需要单独检查或使用Ajax。