Вы можете оставить все как есть.
www.something.com?&something=something_else
является действительным URL-адресом
Но я бы сделал так, чтобы он выглядел правильно, добавив фиктивный параметр:
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);