【发布时间】:2017-02-03 14:08:55
【问题描述】:
我正在开发 chrome 扩展程序。目前,它只是检查用户是否存在。
插件弹出窗口中有一个表单。用户用他的用户名和密码填写此表格,并将其发送到服务器。
在视图中找到用户,一切看起来运行正常,但 AJAX 由于某种原因返回失败。
这是一个视图:
@csrf_exempt
def api_authentication(request):
if request.method == 'POST':
login = request.POST.get('login')
password = request.POST.get('password')
if login and password:
username = login
if '@' in login:
username = mainapp_models.User.objects.get(email=login).username
if not username:
return JsonResponse({'success':0})
user = authenticate(username=username,password=password)
print user # IT's ok, user is found
if user:
return JsonResponse({'username':user.username,
'success':1})
return JsonResponse({'success':0})
这是 AJAX:
$(document).ready(function () {
$('#login-button-id').click(function () {
var login = $('#input-email-id').val();
var password = $('#input-password-id').val();
$.ajax({
url: 'http://127.0.0.1:8000/api/authenticate',
type: 'POST',
data: {
'login': login,
'password': password
},
success: function () {
alert('success');
},
error: function () {
alert('failure');
}
})
})
});
JsonResponse 看起来像这样:{'username': u'milano', 'success': 1}
当我填写表格并发送数据时,找到了user,但警告“失败”。你知道是什么问题吗?
编辑:
提示安迪的回答:
由于console.log不起作用,我将其更改为警报:
error: function (jqXHR, textStatus, errorThrown) {
alert("JQuery failed: " + textStatus + " with error thrown: " + errorThrown);
alert(jqXHR.responseText);
}
警报:
EDIT2
终于找到了一个控制台日志:
【问题讨论】:
-
首先,您发布的代码中有一个拼写错误,
uccess而不是success。然后,当错误 callabck 被触发时,你会得到哪个错误?! -
我尝试使用以下答案中的代码检查错误。它没有记录任何内容,所以我将日志更改为警报。结果在问题的底部。
-
我找到了控制台日志。我不得不点击插件 - 检查插件并摆脱所有警报,因为它们删除了检查窗口。我在问题底部添加了控制台日志。
-
另一个骗子,更接近 Django:stackoverflow.com/q/37544602/934239