为什么我不能将数据作为函数传递在 jQuery ajax dict 中,但在变量中工作相同的数据?



我只是从javascript和jquery开始。我正在使用jQuery ajax,很好奇为什么传递数据中的一种方法是有效的,而另一种则没有。第二个例子有什么问题?

工作示例,我可以从dict

获取发布数据
$('a.pop').click(function() {
      var multi = parseInt($('#multiplier').val());
      var prod = parseInt($('#producer').val());
      $.ajax({
          type: "POST",
          url: "/myurl/post/",
          data: {multiplier: multi, producer: prod},
          success: function(data) {
            bootbox.alert("operacja wykonana poprawnie");
          },
          beforeSend: function(xhr, settings){
            xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
          }
      });
});

在此请求中,/myurl/post/是空的:

  $('a.pop').click(function() {
        $.ajax({
            type: "POST",
            url: "/myurl/post/",
            data: {multiplier: parseInt($('#multiplier').val()), producer: parseInt($('#producer').val()), },
            success: function(data) {
              bootbox.alert($('#multiplier').val());
            },
            beforeSend: function(xhr, settings){
              xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
            }
        });
  });
$('a.pop').click(function() {
      var multi = parseInt($('#multiplier').val());
      var prod = parseInt($('#producer').val());
      var obj = {
       multiplier:multi ,
       producer:prod
      }
      $.ajax({
          type: "POST",
          url: "/myurl/post/",
          data: JSON.stringify(obj ,
          contentType: "application/json; charset=utf-8",
          success: function(data) {
            bootbox.alert("operacja wykonana poprawnie");
          },
          beforeSend: function(xhr, settings){
            xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
          }
      });
});

确保您的代码在文档中。

// A $( document ).ready() Once the page loaded then your script will run 
 $( document ).ready(function() {
    ...
    ...
 });

最新更新