在我的登录方法CakePHP应用程序中,当用户使用if ($this->request->is('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'))
由于
答案 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发送,那么只需在控制器中创建两个不同的函数。