基本上,我编写了以下代码:

var paramStr = '';
for (var n in params) {
    paramStr += '&' + n + '=' + params[n];
}
xhr.open(method, url + '?' + paramStr);

我需要删除第一个&符吗?还是可以保留原样而没有副作用?

最佳答案

您可以保持原样。
www.something.com?&something=something_else是有效的网址

但是我这样做看起来正确的是添加了一个虚拟参数:

var paramStr = '?dummy'; //or any other value
for (var n in params) {
    paramStr += '&' + n + '=' + params[n];
}
xhr.open(method, url + paramStr);

@slobodan的解决方案:
var paramStr = '?';
for (var n in params) {
    paramStr += n + '=' + params[n] + '&';
    // because you can have a `&` at the end
}
xhr.open(method, url + paramStr);

09-20 07:43