我有一个数组,看起来像这样languages = [1,2,3,4,5]
使用阵列中的GET请求
API调用预期的URL参数为languages=1&languages=2&...
我怎么能使用JavaScript实现这一目标?
我试过JSON.stringify(languages);
&只发送languages
变量,但我没有得到想要的结果。
我还可以循环阵列上,并随时添加&languages=number
为一个字符串,但我料想他会是一个更有效的方法?
在此先感谢
我有一个数组,看起来像这样languages = [1,2,3,4,5]
使用阵列中的GET请求
API调用预期的URL参数为languages=1&languages=2&...
我怎么能使用JavaScript实现这一目标?
我试过JSON.stringify(languages);
&只发送languages
变量,但我没有得到想要的结果。
我还可以循环阵列上,并随时添加&languages=number
为一个字符串,但我料想他会是一个更有效的方法?
在此先感谢
另一种选择使用Array.prototype.join
var languages = [2,4,6,8]
lang_params = 'languages='+languages.join('&languages=')
console.log(lang_params)
(按@Quentin和@Amit评论)如果您使用非整其他PARAMS工作,你可能需要编码值,因此它们不会与特殊符号干扰(即&
,?
)。在这种情况下,你可以使用encodeURI
lang_params = languages.map((l)=>'languages='+encodeURIComponent(l)).join('&')
的URISearchParams
API将干净处理这种情况。
它也将这样做是为了使值或键URL安全所需要的数据进行转义处理(在特定的例子,这并不重要,但它是值得关注的为一般情况下)。
// Create an object to describe the data in the query string
var query = new URLSearchParams();
// Add the languages
var languages = [1,2,3,4,5]
languages.forEach(function (language) {
query.append("language", language);
});
// Explicitly convert to a string
console.log(query.toString());
注有limited browser support at present,所以你可能会希望使用a polyfill。
更有效的方式是通过发送POST数组或认沽认购.. –
@MaanusIndov如果它是对某事物的请求,那么它应该是一个GET。我们不知道它是什么,但它看起来确实如此。 – Archer
@Archer好,其真实的,它是很好的使用,如果您要求得到一些数据获取,但没有规则,你必须使用它 。的确,我们不知道是做什么用的请求时,它可以很容易成为一个更新或保存电话,至于某些项目和它的语言,甚至删除要删除哪些语言的呼叫,选项是无限的:) –