小编典典

我如何在没有模板的Django中发送空响应

ajax

我写了一个视图来响应浏览器的ajax请求。它是这样写的-

@login_required
def no_response(request):
    params = request.has_key("params")
    if params:
        # do processing
        var = RequestContext(request, {vars})
        return render_to_response('some_template.html', var)
    else: #some error
        # I want to send an empty string so that the 
        # client-side javascript can display some error string. 
        return render_to_response("") #this throws an error without a template.

我该怎么做?

这是我在客户端处理服务器响应的方式-

    $.ajax
    ({
        type     : "GET",
        url      : url_sr,
        dataType : "html",
        cache    : false,
        success  : function(response)
        {
            if(response)
                $("#resp").html(response);
            else
                $("#resp").html("<div id='no'>No data</div>");
        }
    });

阅读 189

收藏
2020-07-26

共1个答案

小编典典

render_to_response是专门用于呈现模板的快捷方式。如果您不想这样做,只需返回一个空值HttpResponse

 from django.http import HttpResponse
 return HttpResponse('')

但是,在这种情况下,我不会这样做-
您正在向AJAX发送信号,指出存在错误,因此您应该返回错误响应(可能是代码400),而可以使用HttpResponseBadRequest代替。

2020-07-26