我已经实现了一个通过 ajax 成功提交其值的登录表单。当值与数据库之一匹配时,一切都已设置,当值不匹配时,用户自然不会连接。
问题是,作为控制器的响应,我总是得到 200 状态,我无法判断该过程是对还是错。
我知道 php 在技术上一切正常时总是返回 200 状态,但是我如何设置并从我的控制器获取正确的值,我可以在我的 javascript 代码中读取并能够判断事情是否正常?
这是我的代码的一些部分:
//控制器
[...]
if ($logForm -> isValid()) {
//Check user infos in database
[...]
if ( ! $user) {
//We set an error
$resp = array('responseCode' => 400, "message" => "Bad authentification");
} else {
$resp = array('responseCode' => 200, "message" => "Good authentification");
}
$resp = json_encode($resp);
return new Response($resp, 200, array('Content-Type'=>'application/json'));
}
[...]
//jQuery
$('#signInForm').submit(function(e) {
e.preventDefault();
var form = $(this).closest('form');
//console.log(form);
if(form) {
$.ajax({
type: "POST",
url: Routing.generate('ajax_sign_in'),
data: form.serialize(),
cache: false,
statusCode: {
200: function(v) {
console.log("Success");
},
400: function(e) {
console.log("Error");
}
},
dataType: 'json',
});
} else {
alert("Error submitting form");
}
})
非常感谢您的帮助!