为什么我的Ajax调用有空POST?

时间:2014-08-19 19:48:41

标签: jquery python ajax django

当我提交保存表单的Ajax请求时,我得到一个空的request.POST QueryDict。希望我只是因为缺乏Ajax经验而忽略了一些东西。以下是相关代码:

的Ajax

<script>
    $(function() {
        [...]
        $(document).ajaxComplete(function() {
            [...]
            $(".inline-save").click(function() {
                    $.ajax({
                        url : '/webApp/saveForm/',
                        type : 'POST',
                        dataType : 'HTML',
                        contentType: 'application/x-www-form-urlencoded;charset=utf-8',
                        success : function(info) {
                            $("#info-display").html(info);
                        }
                    });
                });
            });
        });

我打算保存的表单是另一个Ajax调用,因此是ajaxComplete用法。在我的 urls.py views.py 中,我只是重定向到save_view,现在只打印request.POST,输出{{1} - 一个空的QueryDict。

我错过了什么?即使有several similar questions,我发现的也没有帮助过我。

2 个答案:

答案 0 :(得分:0)

您可以将data : postData添加到ajax

$.ajax({
    url : '/webApp/saveForm/',
    type : 'POST',
    data : postData,     // You need to add the data you want to send here
    dataType : 'HTML',
    contentType: 'application/x-www-form-urlencoded;charset=utf-8',
    success : function(info) {
        $("#info-display").html(info);
    }
});

答案 1 :(得分:0)

我不太了解您的问题,但是,请尝试查看使用Jquery解释Ajax的文档。

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

来源:http://api.jquery.com/jquery.post/

尝试与众不同。例如:

  $(".inline-save").click(function() {
        $.ajax({
                        type: "POST",
                        url: "http://xxx.xxx.x.xx:PORT/webApp/saveForm",
                        dataType:'json',
                        data:$(".formName").serialize(),
                        success: function(msg) {
                            alert("Form supposedly saved",msg)
                            $("#info-display").html(info);
                        }
                  });
}

或只是添加字段,看看它是否适合您:

data:$(".formName").serialize(),

data:{
   variableName : value,
   variableName2:value2
}

希望它有所帮助。