使用javascript将参数添加到url

使用javascript将参数添加到url,javascript,Javascript,您好,我想向url添加一些参数 let params = {doors: 4, color: red} let request = new Request('/api/cars') Object.keys(params).forEach(key => request.searchParams.append(key, params[key])) 但是我得到了未定义错误的无法读取属性'append' 如果我这样做,它会起作用 var url = new URL('https://exampl

您好,我想向url添加一些参数

let params = {doors: 4, color: red}
let request = new Request('/api/cars')
Object.keys(params).forEach(key => request.searchParams.append(key, params[key]))
但是我得到了未定义错误的无法读取属性'append'

如果我这样做,它会起作用

var url = new URL('https://example.com/api/cars');
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]))
let request = new Request(url)
但是,由于我没有使用URL仅使用相对URL,我想知道是否无法将参数附加到请求

中,构造函数将创建一个新的请求对象。因此,您应该将其与
fetch
异步使用:

let params = {doors: 4, color: red};
let request = new Request('/api/cars');

fetch(request).then(function(response) {
  Object.keys(params).forEach(key => response.searchParams.append(key, params[key]))
})
您可以使用对象并将其附加到URL字符串。以下是一个例子:

const参数={
门:4,
颜色:“红色”
};
const searchParams=新的URLSearchParams();
Object.entries(params.forEach(([key,value])=>searchParams.append(key,value));
const request=新请求(`/api/cars?${searchParams.toString()}`);

log(request.url)查看此问题,我希望这能有所帮助。这是否回答了您的问题?这正是我停止做的,因为我不知道这个领域。是的,我知道你可以使用
localion.hostname
@shammy获得它。我已经编辑了我的答案,使用
URLSearchParams
包含了一个示例。您可以在此解决方案中使用相对URL。