我有一个脚本执行GET请求来验证管理员。
它调用python函数,该函数能够识别所提供的凭证是否有效,并分别返回带有200或401代码的HTTPResponse。 (return HttpResponse(status)
,其中状态已正确设置)
如果管理员是否经过身份验证,脚本只会显示“成功”或“失败”的警报,但即使我提供了错误的密码 - 并且python函数正确返回401代码 - 我得到“成功”警报,即它始终被称为done()
回调。
你能解释一下这种行为吗?如果必须调用done()
或fail()
回调,脚本如何区分?
编辑:
function logIn(){
var my_url="/admn/log/"+$("#password_field").val();
$.ajax({
type: "GET",
url: my_url
}).done(function(data) {
alert("Success!")
}).fail(function(data){
alert("Error!");
});
if pbkdf2_sha256.verify(kwargs["pwd"],expected_hash) == True:
#success
msg='Admin authenticated'
status=200 #Http success ok
else:
#failure
msg='Authentication failed. Please check the password'
status=401 #Http client error unauthorized
credentials_file.close()
return HttpResponse(msg, status)