Ajax请求类型POST-returningget

Ajax请求类型POST-returningget,ajax,django,post,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({

我目前正试图发出一个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>
知道我做错了什么吗?

用方法替换类型

此外,您可能需要发送标题:

其中getCSRFToken是:


我不确定为什么会发生这种情况,但我会用一种稍微不同的方式编写函数。自从ajax;'的默认类型是GET,我怀疑它在什么地方被设置为default

首先设置id为submit_button_id的submit button的type=按钮,以便单击它时不会提交。或者把按钮放在外面

然后试试这个代码

<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>

它将post发送到您的视图,但我不知道哪种请求类型返回您的视图,所以我可以如何帮助您?显示您的视图,或者更好地阅读这里的文档示例是如何发送json响应,或者如果它向您的视图发送GET,这里有许多类似的问题,如果它发送GET,这是严格的jquery问题,因此不需要添加djangotag@madzohan.ajax;没有方法属性。它是type@doniyor嗯,我明白了,但它对我来说适用于jquery-1.11.1,它在我的脑海中来自MooTools:D@doniyor反正都一样:坑没用。。。一旦我在我的推荐视图中执行print request.is_ajax,我就会得到True,我也会执行print request.method。
headers: {
    'X-CSRFToken': getCSRFToken()
},
function getCSRFToken() {
    return $('input[name="csrfmiddlewaretoken"]').val();
}
<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>