ajax を介して値を正常に送信するサインイン フォームを実装しました。値がデータベースのいずれかに一致すると、すべてがセットアップされ、値が一致しない場合、ユーザーは接続されません。
問題は、コントローラーからの応答として常に 200 ステータスを取得していて、プロセスが正しかったのか間違っていたのかわかりません。
技術的にすべてがうまくいった場合、PHPは常に200ステータスを返すことは知っていますが、コントローラーから正しい値を設定して取得するにはどうすればよいですか?
ここに私のコードの一部があります:
//コントローラ
[...]
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");
}
})
助けてくれてありがとう!