Javascript 如何在AJAX调用中构造POST数据值?

Javascript 如何在AJAX调用中构造POST数据值?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一段执行AJAX调用的代码 $.ajax({ url : 'inviaCommento.php', type : 'POST', data : {page: page, category: category} dataType : 'json', success : function (msg) //...and so on 问题是,我想检查是否设置了搜索参数,如果设置了,我必须将单词添

我有一段执行AJAX调用的代码

$.ajax({
      url : 'inviaCommento.php',
      type : 'POST',
          data : {page: page, category: category} 
          dataType : 'json',
       success : function (msg)
            //...and so on
问题是,我想检查是否设置了搜索参数,如果设置了,我必须将单词添加到数据参数中。 问题是:我能在调用向其添加值之前构造数据参数吗? 大概是这样的:

if $('#searchBtn').val()!=''
{
  data.append(search: $('#searchBtn').val())
}

是的,但是
data
不是一个列表,它是一个对象,所以您只需指定适当的键

var data = {page:page}; // ... current value of data: param in the $.ajax call
if($('#searchBtn').val()!=='')
{
  data.search= $('#searchBtn').val();
}

您可以将它放在
$.ajax()调用的上方。

是的,只需创建一个数组

var data = {something: [], page: page, category: category, somekey: "default"};

data.something.push("a");
data.something.push("b");
if (...) {
    data.somekey = "new value";
}

$.ajax({
    ...
    data: data
});