Javascript 网址; }否则{ builtUrl=url; } if(builtUrl&&builtUrl[builtUrl.length-1]==='/')){ builtUrl=builtUrl.slice(0,-1); } 如果(选项){ if(options.path){ var localVar=String(options.path).trim(); 如果(案例变更){ localVar=localVar.toLowerCase(); } if(localVar.indexOf('/')==0){ builtUrl+=localVar; }否则{ builtUrl+='/'+localVar; } } if(options.queryParams){ for(输入选项。查询参数){ if(options.queryParams.hasOwnProperty(键)&&options.queryParams[key]!==void 0){ 变量编码参数; if(options.disableCSV&&Array.isArray(options.queryParams[key])&&options.queryParams[key].length){ 对于(var i=0;i

Javascript 网址; }否则{ builtUrl=url; } if(builtUrl&&builtUrl[builtUrl.length-1]==='/')){ builtUrl=builtUrl.slice(0,-1); } 如果(选项){ if(options.path){ var localVar=String(options.path).trim(); 如果(案例变更){ localVar=localVar.toLowerCase(); } if(localVar.indexOf('/')==0){ builtUrl+=localVar; }否则{ builtUrl+='/'+localVar; } } if(options.queryParams){ for(输入选项。查询参数){ if(options.queryParams.hasOwnProperty(键)&&options.queryParams[key]!==void 0){ 变量编码参数; if(options.disableCSV&&Array.isArray(options.queryParams[key])&&options.queryParams[key].length){ 对于(var i=0;i,javascript,string,forms,get,Javascript,String,Forms,Get,var参数={宽度:1680,高度:1050}; var str=jQuery.param(params); console.log(str) 我知道这是一个很晚的答案,但效果很好 var obj = { a:"a", b:"b" } Object.entries(obj).map(([key, val])=>`${key}=${val}`).join("&"); 注意:object.entries将返回键、值对 上述行的输出将为a=a&b=b 希望它能帮助别人 快乐编码…可能

var参数={宽度:1680,高度:1050};
var str=jQuery.param(params);
console.log(str)

我知道这是一个很晚的答案,但效果很好

var obj = {
a:"a",
b:"b"
}

Object.entries(obj).map(([key, val])=>`${key}=${val}`).join("&");
注意:object.entries将返回键、值对

上述行的输出将为a=a&b=b

希望它能帮助别人


快乐编码…

可能有点多余,但我发现的最干净的方法是建立在这里的一些答案之上的:

const params: {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
}

const esc = encodeURIComponent;
const query = Object.keys(params)
  .map(k => esc(k) + '=' + esc(params[k]))
  .join('&');

return fetch('my-url', {
  method: 'POST',
  headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  body: query,
})

创建URL对象并将值附加到seachParameters

let stringUrl = "http://www.google.com/search";
let url = new URL(stringUrl);
let params = url.searchParams;
    params.append("q","This is seach query");

console.log( url.toString() );


没错。不管怎样,Document.write是1995年的事。只是想知道是否有内置的东西。看来应该有。我讨厌prototype,但我并不反对你:)当JavaScript被设计时,Ajax还没有被发现,因此解析表单只是为了得到querystring(提交时它会自己创建)可能没有多大意义。今天确实如此,很难。。。顺便说一句,与script.aculo.us相比,原型很好谢谢我正面临着与原始海报相同的问题,而您的功能正是我所需要的。在jquery、mootools等流行的javascript框架中,有没有类似于此的内置功能?一个更强大的本机javascript解决方案是有史以来最奇怪的实现,当您实际将新数组用作对象时,为什么需要初始化它?啊,,O@UmutSirin哈哈,是的,当时我对Javascript知之甚少。xD我想我把它当作一个PHP数组。如果你愿意,可以随意重构。@Michael哈哈,是的。我刚发了一封编辑信。谢谢你的回答!这其实是正确的答案!表单的查询字符串是
$.param($('#myform').serializeArray())
@Jesse,其结果与:
$('#myform').serialize()
jQuery!==JavaScript
@gphilip这就是为什么我以“如果您正在使用jQuery…”开始响应。否则,如果您想在vanilla JS中实现它,您可以检查
jQuery.param()
的实现,这里:)与我的回答不同,这一个支持嵌套对象,如
someStr=value1&someObj[a]=5&someObj[b]=6&someArr[]=1&someArr[]=2
FYI:我见过的最佳解决方案的可能的副本-非常简洁。不过有几个警告。1) 在.map()中,k和params[k]都应该编码,例如encodeURIComponent(k)和encodeURIComponent(params[k])。2) 允许在查询字符串中有多个命名参数实例。如果你想要这种功能,你必须使用数组而不是对象(大多数应用程序都不想要或不需要)。3)并非所有浏览器都支持箭头函数语法(需要ES5)。如果要支持所有浏览器(并对部分进行编码),请将上述.map()替换为.map(函数(k){return encodeURIComponent(k)+'='+encodeURIComponent(params[k]);})“jquery不够”USE171759I编辑的答案也包括你的例子非ES5的前端应用程序,你也可以考虑@罗伯特潘科维奇,是的,QS是更好的,已经在我的武器库,干杯!诚然,您在近10年前回答了这个问题,但现在这段代码已经被弃用了。我认为这是最好的答案。您可以在以后添加
params.append(key,value)
来在更复杂的场景中添加新的搜索参数。请注意,未定义和空值也包含在最后一个字符串中:
x=null&y=undefined
,如果您已经有一个URL对象(例如
constURL=newURL(“https://stackoverflow.com”
),您可以设置其查询字符串
url.search=newurlsearchParams({foo:“bar”})
url.searchParams.ap
Object.toQueryString({ action: 'ship', order_id: 123, fees: ['f1', 'f2'], 'label': 'a demo' })

// -> 'action=ship&order_id=123&fees=f1&fees=f2&label=a%20demo'
function buildUrl(url, parameters){
  var qs = "";
  for(var key in parameters) {
    var value = parameters[key];
    qs += encodeURIComponent(key) + "=" + encodeURIComponent(value) + "&";
  }
  if (qs.length > 0){
    qs = qs.substring(0, qs.length-1); //chop off last "&"
    url = url + "?" + qs;
  }
  return url;
}

// example:
var url = "http://example.com/";

var parameters = {
  name: "George Washington",
  dob: "17320222"
};

console.log(buildUrl(url, parameters));
// => http://www.example.com/?name=George%20Washington&dob=17320222
var params = {
    parameter1: 'value1',
    parameter2: 'value2',
    parameter3: 'value3' 
};
var query = $.param(params);
console.log(query);
parameter1=value1&parameter2=value2&parameter3=value3
$.param({ action: 'ship', order_id: 123, fees: ['f1', 'f2'], 'label': 'a demo' })

// -> "action=ship&order_id=123&fees%5B%5D=f1&fees%5B%5D=f2&label=a+demo"
var uri = new URI("?hello=world");
uri.setSearch("hello", "mars"); // returns the URI instance for chaining
// uri == "?hello=mars"

uri.setSearch({ foo: "bar", goodbye : ["world", "mars"] });
// uri == "?hello=mars&foo=bar&goodbye=world&goodbye=mars"

uri.setSearch("goodbye", "sun");
// uri == "?hello=mars&foo=bar&goodbye=sun"

// CAUTION: beware of arrays, the following are not quite the same
// If you're dealing with PHP, you probably want the latter…
uri.setSearch("foo", ["bar", "baz"]);
uri.setSearch("foo[]", ["bar", "baz"]);`
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('&');
    .map(function(k) {return esc(k) + '=' + esc(params[k]);})
const querystring = require('querystring')

url += '?' + querystring.stringify(parameters)
const buildURLQuery = obj =>
      Object.entries(obj)
            .map(pair => pair.map(encodeURIComponent).join('='))
            .join('&');
buildURLQuery({name: 'John', gender: 'male'});
"name=John&gender=male"
const formData = new FormData(form);
const searchParams = new URLSearchParams(formData);
const queryString = searchParams.toString();
var url = buildUrl('http://mywebsite.com', {
        path: 'about',
        hash: 'contact',
        queryParams: {
            'var1': 'value',
            'var2': 'value2',
            'arr[]' : 'foo'
        }
    });
    console.log(url);
var obj = {
a:"a",
b:"b"
}

Object.entries(obj).map(([key, val])=>`${key}=${val}`).join("&");
const params: {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
}

const esc = encodeURIComponent;
const query = Object.keys(params)
  .map(k => esc(k) + '=' + esc(params[k]))
  .join('&');

return fetch('my-url', {
  method: 'POST',
  headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  body: query,
})
let stringUrl = "http://www.google.com/search";
let url = new URL(stringUrl);
let params = url.searchParams;
    params.append("q","This is seach query");

console.log( url.toString() );