Django json,资源解释为Document但是使用MIME类型application / json传输:

时间:2017-02-21 01:33:52

标签: python json ajax django

我一直在尝试为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'>&times;</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

我相信代码很好,但也许我错过了一些东西。

1 个答案:

答案 0 :(得分:-1)

我没有发布我的html表单代码,有一个与此相关的错误,特别是在这部分:

$('#botonregistro').on('submit', function(e)

我的选择器错误,该ID来自我的提交按钮而不是我的表单ID。

感谢您的所有答案,我仍然需要从新手的错误中吸取教训。