你如何区分CakePHP中的AJAX GET和AJAX POST请求?

时间:2012-01-15 16:05:06

标签: ajax cakephp

在我的登录方法CakePHP应用程序中,当用户使用if ($this->request->is('ajax'))

通过AJAX调用提交表单时,我会做一些不同的事情

但是我也希望允许登录方法以模式显示以便快速登录,这也是一个ajax调用。但是,我如何检测AJAX GET以显示表单然后使用AJAX POST进行实际登录之间的区别?

见下文我可以检测本机获取和帖子但是对于ajax我如何检测CakePHP中的差异???因为看起来我只能检测到ajax事件而不是类型:/

NATIVE:

GET = if ($this->request->is('get'))
POST = if ($this->request->is('post'))


AJAX:

GET = if ($this->request->is('ajax'))
POST = if ($this->request->is('ajax'))

由于

2 个答案:

答案 0 :(得分:2)

解决方案:

if ($this->request->is('get'))
        {
            if ($this->request->is('ajax'))
            {
                echo json_encode('ajax get'); exit;
            }
            else {
                echo 'Normal get'; exit;
            }

        }

        if ($this->request->is('post'))
        {   
            if ($this->request->is('ajax'))
            {
                echo json_encode('ajax post'); exit;
            }
            else {
                echo 'Normal post'; exit;
            }
        }

答案 1 :(得分:0)

不确定我是否理解这个问题,但如果问题是表单数据可以作为POST或GET进入,那么解决方案是检查POST数据是否存在。如果是,请使用POST,否则从GET获取数据。 (或者其他方式。)

如果函数应该执行不同的操作,具体取决于表单是作为POST还是GET发送,那么只需在控制器中创建两个不同的函数。