#Edit 我使用的是 CakePHP 2.3.5
我想知道我的 Ajax 请求和控制器行为有什么问题。这些是我遇到的问题:
- Ajax - POST 请求总是失败(我总是得到 ERROR 响应)
- 即使这样,我也可以将新用户添加到数据库 O_o
- 即使我有 beforeFilter 来识别 ajax 请求仍然重定向到视图(正如您在下面的源代码中看到的那样,我添加了 autoRender 参数 false)
我真的不知道发生了什么,我将不胜感激任何帮助!
这是源代码:
我的ajax请求
$('.addUser').on('click', function(){
var data = $('#UserAddForm').serialize();
$.ajax({
dataType: "html",
type: "POST",
evalScripts: true,
url: 'Users/add',
data: data,
success: function (){
$('#regInfo').html("User was created");
$('#regInfo').css('color', 'darkgreen');
},
error: function(){
$('#regInfo').html("User was not created");
$('#regInfo').css('color', 'darkgreen');
}
});
})
CakePHP 中的我的用户控制器
public function add() {
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been saved'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
}
在我的 AppController
public function beforeFilter(){
if ($this->request->is('ajax')) {
Configure::write('debug', 0);
$this->autoRender = false;
$this->layout = 'ajax';
}
}