我一直在尝试使用CakePHP 1.3实现ajax登录。我有一个简单的用户名/密码登录弹出。虽然json格式的回应是正确的,但Ajax json总是返回错误
以下是在我的意见/元件/ login.ctp:
echo $this->Form->create('User', array('url'=>array('controller'=>'users','action'=>'login'), 'id'=>'user_login'));
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login'));
以下是在我的控制器控制器/ users_controller.php中
public function ajax_login() {
$response = array('success'=>false);
if($this->RequestHandler->isPost()) {
if($this->Auth->login()) {
$response = array('success'=>"true");
} else {
$response = array('success'=>false);
}
}
$this->set('response', $response);
}
用于上述控制器的视图is under views/users/ajax_login.ctp只有这条线:
echo $javascript->object(isset($response) ? $response : array());
我阿贾克斯具有下面的代码:
function login_user(){
var username = $("#UserUsername").val();
var password = $("#UserPassword").val();
if(username == "" || username == null || password == "" || password == null){
alert("Please enter a username and password");
return false;
}
$.ajax({
url:"https://stackoverflow.com/users/ajax_login",
type:"POST",
data:$('#user_login').serialize(),
dataType:"json",
async: true,
success: function() { console.log("success"); },
error: function(msg) { console.log(msg); }
});
return false;
}
现在,似乎一切都可以正常使用,但是,它始终未能进入“错误”回调,我不知道为什么。我已经阅读了下面的所有关于stackoverflow的链接,并且它们都不是问题!
我怀疑的唯一的事情是,当我读到错误的console.log(msg),我得到正确的HTML响应{ “成功”:真正}这是在正确的格式...但是...“responseText”我得到这样的东西:
responseText:“ { “成功”:真正}!< - 0.375s - > “
所以基本上即时猜测它的这种” < - 0.375s - >“这是造成JSON格式总是失败!我的阿贾克斯电话。我不知道这是CakePHP问题,还是AJAX/JSON问题!...我已经工作了超过5年,现在我的工作已经完成卡住!
2013-07-05
Amjo