Existe alguma maneira de criar os parâmetros de consulta para fazer uma solicitação GET em JavaScript?
Assim como no Python, você urllib.urlencode()
cria um dicionário (ou lista de duas tuplas) e cria uma string como 'var1=value1&var2=value2'
.
javascript
url
urlencode
cnu
fonte
fonte
for
, use hasOwnProperty para garantir a interoperabilidade.URLSearchParams tem suporte crescente ao navegador.
O Node.js oferece o módulo querystring .
fonte
searchParams.append(otherData)
funcional
fonte
var data = { bloop1: true, bloop2: "something" }; var url = "https://something.com/?"; var params = encodeData(data); var finalUrl = url + params; // Is this the right use?
Deve produzirhttps://www.something.com/?bloop1=true&bloop2=something
?O Zabba forneceu em um comentário sobre a resposta atualmente aceita uma sugestão de que para mim é a melhor solução: use jQuery.param () .
Se eu usar
jQuery.param()
os dados na pergunta original, o código será simplesmente:A variável
params
seráPara exemplos, entradas e saídas mais complicados, consulte a documentação do jQuery.param () .
fonte
Acabamos de lançar o arg.js , um projeto que visa solucionar esse problema de uma vez por todas. Tradicionalmente, tem sido tão difícil, mas agora você pode fazer:
E a leitura funciona:
ou obter todo o lote:
e se você se importa com a diferença entre
?query=true
e#hash=true
então pode usar os métodosArg.query()
eArg.hash()
.fonte
Isso deve fazer o trabalho:
Exemplo:
Resultado:
fonte
encodeURIComponent()
vez deencodeURI
. Leia sobre a diferença .ES2017 (ES8)
Fazendo uso de
Object.entries()
, que retorna uma matriz de[key, value]
pares de objetos . Por exemplo,{a: 1, b: 2}
pois retornaria[['a', 1], ['b', 2]]
. Não é suportado (e não será) apenas pelo IE.Código:
Exemplo:
Resultado:
fonte
Se você estiver usando Prototype, existe Form.serialize
Se você estiver usando jQuery, há Ajax / serialize
Porém, não conheço nenhuma função independente para fazer isso, mas uma pesquisa no google revelou algumas opções promissoras se você não estiver usando uma biblioteca no momento. Se você não é, você realmente deveria, porque eles são o paraíso.
fonte
Gostaria de revisitar essa pergunta de quase 10 anos. Nesta era de programação pronta para uso, sua melhor aposta é configurar seu projeto usando um gerente de dependência (
npm
). Existe toda uma indústria de bibliotecas caseiras por aí que codifica as strings de consulta e cuida de todos os casos extremos. Este é um dos mais populares -https://www.npmjs.com/package/query-string
fonte
Uma pequena modificação no texto datilografado:
fonte
Este tópico aponta para algum código para escape de URLs em php. Há
escape()
eunescape()
que fará a maior parte do trabalho, mas você precisará adicionar algumas coisas extras.fonte