如何将同一类型的多个参数传递给jQuery Get

我正在尝试使用jQuery $ .get从站点获取一些数据。 我需要设置2个相同类型的参数:

..&q=Some Text&q=Some other text 

jQuery似乎用第二个覆盖q的第一个实例,只发送1.有什么方法吗?

这是我试图使用的代码:

 var params = { "otherParam":"x", "q":text, "q":title }; $.get(url, params, mySuccessFunction); 

尝试:

 var params = { "otherParam": "x", "q": [ text, title ] }; 

编辑 – 更多信息:像这样的数组值参数由jQuery专门处理。 为了安抚许多常见的服务器框架,默认情况下(因为我认为是版本1.5或1.6),这些将导致参数名称包含“[]”(开括号和闭括号字符)作为后缀(没有数字,与我的错误相反)评论如下)。 如果你不想那样,你可以设置

 jQuery.ajaxSettings.traditional = true; 

它只是“q”而不是“q []”。

另一种解决方法,不需要encodeURIComponent()或搞乱jQuery.ajaxSettings.traditional = true; 我不想这样做,因为我不想干扰(甚至暂时)网站的其他部分可能同时做什么。

方法是:

  var params=[ {name:"q", value:title}, {name:"q", value:text} ]; $.get(url, params, mySuccessFunction); 

另一种不修改jQuery.ajaxSettings.traditional = true; 是使用$.param() http://api.jquery.com/jQuery.param/

所以这样的事情:

 var params = { "otherParam": "x", "q": [ text, title ] }; $.get(url, $.param(params, true), mySuccessFunction); 

您可以像这样编写URL:

 $.get( url+'?q='+encodeURIComponent(text)+'&q='+encodeURIComponent(title)+'&otherParam='+encodeURIComponent('x'), mySuccessFunction ); 

事情非常简单,并在jQuery网站http://api.jquery.com/jquery.param/中进行了描述。

首先创建一个params对象

 var params=[{ name: 'param1', value: 'hello' }, { name: 'param1', value: 'alex' }]; 

接下来创建要发送到服务的数据。

 var data = jQuery.param(params); 

该对象可以作为ajax请求的数据参数插入。 我喜欢使用设置对象

 var settings={ url: 'api/domain/timeline', type: 'get', contentType: 'application/json', data: data }; $.ajax(settings);