Ajax请求类型POST返回GET

时间:2014-11-08 14:35:25

标签: ajax django post

我目前正在尝试制作一个ajax POST请求,以便将一个推荐简单表单发送到Django视图。问题是此请求返回GET而不是POST。

这是我的ajax:

<script>

$(document).ready(function(){
  $("form.testimonial-form").submit(function(e){
    e.preventDefault();

    var dataString = $(this).serialize();

    $.ajax({
      type: "POST",
      url: "/testimonials",
      data: dataString,
      success: function(_data) {        
        if (_data[0]){
          $('.modal-text').css({display: "none"});
        }
        else{
          $('.unsuccess').css({display: "block"});
        }
       }
    });
  });
});
</script>

知道我能做错什么吗?

2 个答案:

答案 0 :(得分:0)

type替换为method

method: 'post',

您也可能需要发送headers

headers: {
    'X-CSRFToken': getCSRFToken()
},

其中getCSRFToken是:

function getCSRFToken() {
    return $('input[name="csrfmiddlewaretoken"]').val();
}

答案 1 :(得分:0)

我不确定为什么会发生这种情况,但我会以不同的方式编写函数。由于ajax();的默认type"GET",我怀疑某处将其设置为默认值。

首先设置提交按钮的type="button"(其ID为"submit_button_id"),因此如果您点击它,则不会提交。或将按钮放在<form>

之外

然后尝试此代码

<script>
$(function(){ // same as "$(document).ready(function()".. 
  $("#submit_button_id").on('click',function(){

  var dataString = $('form.testimonial-form').serialize();

  $.ajax({
    type: "POST",
    url: "/testimonials",
    data: dataString,
    success: function(_data) {        
      if (_data[0]){
        $('.modal-text').css({display: "none"});
      }
      else{
        $('.unsuccess').css({display: "block"});
      }
     }
   });
  });
});
</script>
相关问题