How to build query string with Javascript
2k20 update: use Josh's solution with URLSearchParams.toString().
Old answer:
Without jQuery
var params = { parameter1: 'value_1', parameter2: 'value 2', parameter3: 'value&3' };var esc = encodeURIComponent;var query = Object.keys(params) .map(k => esc(k) + '=' + esc(params[k])) .join('&');
For browsers that don't support arrow function syntax which requires ES5, change the .map...
line to
.map(function(k) {return esc(k) + '=' + esc(params[k]);})
The URLSearchParams API is available in all modern browsers. For example:
const params = new URLSearchParams({ var1: "value", var2: "value2", arr: "foo",});console.log(params.toString());//Prints "var1=value&var2=value2&arr=foo"
If you're using jQuery you might want to check out jQuery.param()
http://api.jquery.com/jQuery.param/
Example:
var params = { parameter1: 'value1', parameter2: 'value2', parameter3: 'value3' };var query = $.param(params);console.log(query);
This will print out:
parameter1=value1¶meter2=value2¶meter3=value3