我正在使用 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
,但是“失败”'警报。你知道这个问题是什么吗?
编辑:
Andy的回复提醒:
由于console.log
无效,我将其更改为提醒:
error: function (jqXHR, textStatus, errorThrown) {
alert("JQuery failed: " + textStatus + " with error thrown: " + errorThrown);
alert(jqXHR.responseText);
}
通知:
EDIT2
终于找到了一个控制台日志:
答案 0 :(得分:1)
https://developer.chrome.com/extensions/xhr
查看此文档,并检查您的权限设置是否正确。
您需要将要通过AJAX请求尝试访问的域添加到manifest.json中的“ permissions”数组。像这样:
permissions: [
"http://127.0.0.1:8000/"
]
答案 1 :(得分:0)
多一点调试会很方便。尝试更改您的AJAX错误函数以报告更多(不多,但它有帮助):
error: function(jqXHR, textStatus, errorThrown){
console.log("JQuery failed: " + textStatus + " with error thrown: " + errorThrown);
console.log(jqXHR);
alert('AJAX failed. Check browser console for more info');
}
另外,您是否正在从开发服务器(./manage.py runserver)运行django应用程序?这样做并寻找任何有用的输出,如堆栈跟踪。可能就像Python代码中的拼写错误或遗忘导入一样简单
答案 2 :(得分:-1)
另一个建议 - 仔细看看你的Python尝试改变:
echo $val = dechex(-29338);
result = ffff8d66
到
echo $val & 0xFFFF ;