Ajax jQuery没有将变量传递给数据未定义错误

时间:2017-11-19 15:22:47

标签: javascript jquery ajax

我正在使用页面滚动功能加载数据。当我在我的函数中对数据行进行硬编码时,一切正常

例如,这可以将sortby设置为“asc”

data: '{pageIndex: ' + pageIndex + ', sortby: "asc" }',

这不起作用,我得到未定义的消息

data: '{pageIndex: ' + pageIndex + ', sortby: '+ sortby +' }',

我在函数中设置了一个警告,并且var sortby的值确实相等,当我滚动到正确的页面底部时弹出警告框。

但它没有通过并导致未定义的错误

这就是我所拥有的:

<script type="text/javascript">
  var pageIndex = 1;
  var pageCount;
  $(window).scroll(function () {
    if ($(window).scrollTop() == $(document).height() - $(window).height()) {
        GetRecords();
    }
  });
  function getdropdownlistSelectedItem(sender, args) {
    var raddropdownlist = $find('<%=RadDropDownList1.ClientID %>');
    var selecteditem = raddropdownlist.get_selectedItem().get_value() || "asc";
    return selecteditem;
  }
  function GetRecords() {
    var sortby = getdropdownlistSelectedItem();
    alert('Sortby: ' + sortby);
    pageIndex++;
    if (pageIndex == 2 || pageIndex <= pageCount) {
      $("#loader").show();
      $.ajax({
        type: "POST",
        url: "categorypage.aspx/GetCustomers",
        // data: '{pageIndex: ' + pageIndex + ', sortby: "asc" }',
        data: '{pageIndex: ' + pageIndex + ', sortby: '+ sortby +' }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function (response) {
          alert(response.d);
        },
        error: function (response) {
          alert(response.d);
        }
    });
  }
}

有人可以告诉我如何正确传递这个值吗?

感谢。

Alert box shows correct value

1 个答案:

答案 0 :(得分:1)

问题是因为您没有将sortby中包含的字符串包装在引号中。试试这个:

data: '{pageIndex: ' + pageIndex + ', sortby: "'+ sortby +'" }',

请注意第二个连接值周围的双引号。

更好的做法是不要自己构建一个丑陋的连接字符串,而只是为data属性提供一个对象。 jQuery将根据您的需要对其进行编码:

data: {
  pageIndex: pageIndex,
  sortby: sortby
},