如何解决ajax后请求问题?

时间:2015-08-24 20:58:19

标签: javascript jquery python ajax django

查看:

@csrf_exempt
def client_data(request):
    if request.method == 'POST':
        form = formData(request.POST)
        if form.is_valid():
            ip = get_ip(request)
            region = get_region(ip)
            return redirect("/")

形式:

class formData(forms.Form):
email = forms.CharField(label='email', required=True, error_messages={'required': 'Укажите email'})
phn = forms.CharField(label='phone', required=True, error_messages={'required': 'Укажите  phone'})
timezone = forms.CharField(label='timezone')

模板:

$(function () {
    $('#send').click(function () {

        var form = $('#send');
        var send = {};
        send['email'] = $("#email").val()
        send['phn'] = $("#phn").val()
        send['timezone'] = (new Date()).getTimezoneOffset().toString();

        $.ajax({
            url: "/sms/send/",
            type: "POST",
            data: send,//$("#send_form").serialize(), timezone,
            dataType: "json",
            success: function (response) {
                alert("Данные отправлены");
            },
            error: function (xhr, textStatus, thrownError){
                alert(thrownError)
            }
        });
    return false;
    })
});
<form class="form-inline text-left" id="send_form" method="post">
{% csrf_token %}
<div class="form-group">
    <input type="email" name="email" value="" id="email" class="form-control field" placeholder="Ваш E-mail" />
</div>
<div class="form-group">
    <input type="tel" name="phn" value="" id="phn" class="form-control field" placeholder="Ваш Телефон" />
</div>
<div class="form-group" style="margin-left: 30px">
    <input id="send" type="submit" class="button send" value="Отправить">
</div>

服务器响应: ValueError at / sms / send / 视图sms_send.views.client_data未返回HttpResponse对象。它改为返回None。

我做错了什么?如何解决?

1 个答案:

答案 0 :(得分:0)

错误回溯非常清楚。每个Django视图都必须返回一个HttpResponse对象。如果要进行重定向,请执行以下操作:

from django.http import HttpResponseRedirect

def client_data(request):
    # do something ...
    return HttpResponseRedirect('/')
相关问题