2017-02-28 105 views
0

其中执行django的视图的一部分是如下:显示响应

def traxio_advice(request): 
    ....... 
    ....... 
    elif calculation['statusCode'] == 400: 
     response = JsonResponse({'message': 'The calculation is not available! Please try another mileage.'}, status=500) 
     return response 

而在django的模板我有AJAX调用如下:

$.ajax({ 
    type: 'POST', 
    url: '{% url 'traxio_advice' %}', 
    data: { 
     firstname: $('input[name=firstname]').val(), 
     csrfmiddlewaretoken: '{{ csrf_token }}' 
    }, 
    success: function (data) { 
     ...... 
    }, 
    error: function (data) { 
     var message = $.parseJSON(data.responseText).message; 
     $('#calculation-error').removeClass('hidden').html(message) 
    }, 
    beforeSend: function() { 
     $('#result-content').html('<div class="loader"></div>'); 
    } 
}) 

问题在于错误功能。我得到我想要的,因此,数据是正确的。

message = "The calculation is not available! Please try another mileage." 

但是该消息未显示在ID为​​的div中。

相反,我看到从beforeSend功能加载在屏幕上,在控制台中我得到

POST http://127.0.0.1:8000/master/traxio_advice/ 400 (Bad Request) 

我缺少什么?

+0

你最初问了一个问题,你已经将状态设置为500,所以我回答了。现在你已经改变了你的代码来显示状态400,这不是在 – e4c5

+0

如果你的服务器是真正具有内部服务器错误(当您设置状态代码400)发布全stactrace – e4c5

+0

@ e4c5我写的评论,这是一个错误。 – Boky

回答

0

只是为了信息,如果别人将有一个类似的问题。

其实问题出在beforeSend函数和模板上。

编号为#calculation-error(我想显示错误)的div位于编号为#result-content的div内。

但在beforeSend功能我取代的div id为#result-content内容。

因此,在这样的模板:

<div id="result-content"> 
    <div class="loader"></div> 
</div> 

我试图表明在div错误id为#calculation-error。它不能显示,因为该div不存在。

-1

有关您的错误延长器信息集

DEBUG = True 

在你的settings.py