1

我的页面上有一个使用 ajax 的函数。ajax 转到 Django 视图,然后它可以为我返回某种数据。不幸的是,我目前只能让它返回一条数据。第二个作为字符串“success”返回。这就是我要做的:

阿贾克斯:

 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 语句不使用它正在接收的“消息”值,而只是插入字符串“成功”。“数据”参数处理正确。

4

2 回答 2

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    
}
于 2013-08-09T17:20:51.367 回答
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);
        }},
于 2013-08-09T17:23:37.130 回答