Atualização em março de 2017:
O suporte ao URL.searchParams chegou oficialmente ao Chrome 51, mas outros navegadores ainda exigem um polyfill .
A maneira oficial de trabalhar com parâmetros de consulta é apenas adicioná-los ao URL. A partir da especificação , este é um exemplo:
var url = new URL("https://geo.example.org/api"),
params = {lat:35.696233, long:139.570431}
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]))
fetch(url).then(/* … */)
No entanto, eu não tenho certeza Chrome suporta a searchParams
propriedade de uma URL (no momento da escrita), de modo que você pode querer ou uso uma biblioteca de terceiros ou solução roll-seu-próprio .
Atualização em abril de 2018:
Com o uso do construtor URLSearchParams, você pode atribuir uma matriz 2D ou um objeto e atribuir isso ao url.search
invés de repetir todas as chaves e anexá-las
var url = new URL('https://sl.se')
var params = {lat:35.696233, long:139.570431} // or:
var params = [['lat', '35.696233'], ['long', '139.570431']]
url.search = new URLSearchParams(params).toString();
fetch(url)
Sidenote: URLSearchParams
também está disponível no NodeJS
const { URL, URLSearchParams } = require('url');