在django中使用ajax处理表单请求

时间:2017-08-10 09:49:39

标签: javascript jquery ajax django

当我从表单发送请求时,我遇到了ajax的问题​​,但是没有从表单中获取值

这是我的观看代码

def create(request):
    if request.method == 'POST':
        msg_text = request.POST.get('the_massage')
        data = {}
        form = ChatApp(message=msg_text, user=request.user)
        form.save()
        data['message']=form.message
        data['user']=form.user.username
        return JsonResponse(data)
    else:
        return JsonResponse({'nothing coming thrue'})

它得到了the_massage变量,但它给了我空值

这是我的ajax功能:

    $(function () {


  $('#main-form').on("submit"  ,function () {
    console.log("create function is here");
    var form = $(this);
    $.ajax({
      url: form.attr('action'),
      type: form.attr('method'),
      data: {the_massage:$('#msgbox').val()},
      dataType: 'json',

      success: function(json) {

        console.log(json);
        console.log('success');
      },
      error: function(error){
        console.log('we have error');
      },
    });
  });

});

当我控制台记录它刚刚在控制台中传来的值时 请帮我 并在控制台中告诉我这个:

  

资源被解释为文档但以MIME类型传输   application / json:“http://localhost:8000/create/”。

3 个答案:

答案 0 :(得分:0)

在您的活动中调用该函数:

$('#main-form').on("submit"  ,function (event) {
    event.preventDefault();
    console.log('submited');
    console.log($('#msgbox').val())
    created(); 
 });

答案 1 :(得分:0)

我在这里看到很多可能的问题。

1)仅针对开发提议,从您的视图中删除@login_required(如果有)并添加@csrf_exempt以避免此问题。

2)请查看您视图中的request.body

3)如果第1点和第2点不起作用,请填写此呼叫的服务器响应:POST localhost:8000/create 403 (Forbidden)

答案 2 :(得分:0)

这是写答案:我现在解决了这个问题以及它在git hub上https://github.com/mhadiahmed/tinypice