我一直在尝试为django 1.10创建一个注册表单,它几乎正常工作,除了当我使帖子工作正常,但重定向到ajax帖子的url并在Chrome检查器中我看到这样的事情:资源解释为Document但使用MIME类型application / json传输:“http://127.0.0.1:8500/reg/”。
然后显示我的json回复:{“reg”:“ok”,“email”:“logdo@fujasldm.com”}
由于这种不受欢迎的重定向,我无法在我拥有表单的页面上处理响应。
这是我的ajax:
$('#botonregistro').on('submit', function(e) {
e.preventDefault();
console.log("reg!") // sanity check
$.ajax({
url: "/reg/", // the endpoint
type: "POST", // http method
data: {
username: $('#id_username').val(),
password: $('#id_password').val(),
email: $('#id_email').val(),
sexo: $('#id_sexo').val(),
interes: $('#id_interes').val()
}, // data sent with the post request
success: function(response) {
$('.home-reg-form').empty();
console.log(json);
console.log("success");
},
error: function(response) {
$('.home-reg-form').empty();
$('.home-reg-form').html("<div class='alert-box alert radius' data-alert>Oops! We have encountered an error: <a href='#' class='close'>×</a></div>"); // add the error to the dom
}
});
});
这是我在帖子网址上的观点:
def reg_ajax(request):
if request.method == 'POST':
uname = request.POST.get('username')
email = request.POST.get('email')
psw = request.POST.get('password')
user = User.objects.create_user(username=uname, email=email, password=psw)
response = JsonResponse({'reg':'ok', 'email': email})
return response
else:
response = JsonResponse({'reg':'error'})
return response
我相信代码很好,但也许我错过了一些东西。
答案 0 :(得分:-1)
我没有发布我的html表单代码,有一个与此相关的错误,特别是在这部分:
$('#botonregistro').on('submit', function(e)
我的选择器错误,该ID来自我的提交按钮而不是我的表单ID。
感谢您的所有答案,我仍然需要从新手的错误中吸取教训。