我在CakePhp2.4.5-中第一次使用$ .ajax,我在stackoverflow上阅读了很多文章,并在w3schools和jquery网站上进行了其他研究,但无法理解应该如何解决我的问题。
我想从第一视图index.ctp向控制器发送数据

 $.ajax({
                type: 'POST',
                url: 'meers/client',
                datatype:'json',
                cache: false,
                data: {myVal:'Success!'},
                success: function(){alert('AjaX Success')},
                error: function(){alert('AjaX Failed')}
            })
                .done(function(){
                    alert('AjaX Done!');
                });


警报显示“ AjaX成功”。

在我的控制器中

public function client(){if($this->request->isAjax()){ $this->set('ajaxTest','Success'); }}

在我的第二个视图client.ctp中。

if(isset($ajaxTest)){ echo $ajaxTest;}else{ echo 'ajaxTest not Set.';}

问题。我总是在我的Client.ctp视图“ ajaxTest not Set”中得到味精。
我究竟做错了什么 ?或如何做?谢谢

最佳答案

我认为您的问题出在网址中,因为“ meers / client”不在路由中

  $.ajax({
        type: 'POST',
        url: "<?php echo $this->Html->url(array('controller' => 'YourController','action' => 'YourAction')); ?>",
        datatype:'json',
        cache: false,
        data: {myVal:'Success!'},
        success: function(){alert('AjaX Success')},
        error: function(){alert('AjaX Failed')}
    })
        .done(function(){
            alert('AjaX Done!');
        });


或可以探测给路由器:

  $.ajax({
        type: 'POST',
        url: "<?php echo Router::url(array('controller' => 'YourController', 'action' => 'YourAction'), true); ?>",
        datatype:'json',
        cache: false,
        data: {myVal:'Success!'},
        success: function(){alert('AjaX Success')},
        error: function(){alert('AjaX Failed')}
    })
        .done(function(){
            alert('AjaX Done!');
        });


您可以看到其他示例:

http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/

Making jquery ajax call from view to controller in cakephp 2.x

07-26 06:13