我的页面上有一个使用ajax的函数。 ajax进入Django视图,然后可以为我返回某种数据。不幸的是,我现在只能让它返回一条数据。第二个作为字符串“success”返回。这是我的目标:
的Ajax:
success: function(data, message) {
if(data === 'False'){
$('#mailsquare').css('background-color', '#A80000');
$('.dropdown-menu').prepend('<li class="message" id="{{item.id}}">'+message.substring(0,30)+'</li>');
} else {
$('#mailsquare').css('background-color', '#1b1b1b');
}
},
查看:
@login_required
def checkMail(request):
user = request.user.get_profile()
i = inbox.objects.get(user = user)
read = i.read
new = i.message.order_by('created')[:1]
return HttpResponse(read, new)
prepend语句不使用它正在接收的“message”值,而只是插入字符串“success”。正确处理“data”参数。
答案 0 :(得分:4)
success
方法的定义如下:
success: function(data, textStatus, jqXHR) {
因此,message
实际上是textStatus
因此结果。
您需要正确地从视图中发送数据才能正常工作。
一种方法是:
@login_required
def checkMail(request):
user = request.user.get_profile()
read = inbox.objects.get(user = user).read
newest = i.message.order_by('created')[:1]
return HttpResponse(simplejson.dumps({'read': read, 'newest': newest}))
和js
success: function(data, textStatus, jqXHR) {
var read = data.read;
var newest = data.newest;
//rest of the stuff
}
答案 1 :(得分:0)
您错误地返回了ajax的数据
def answer(request):
# same you code
payload = {'success':True,'param1': 'you_value', 'param2':'you_value2'}
return HttpResponse(json.dumps(payload), content_type='application/json')
在Javascript中
success: function(data) {
if(data.success === false){
alert(data.param1);
alert(data.param2);
} else {
$('#mailsquare').css('background-color', data.param1);
$('#mailsquare').html(data.param2);
}},