You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript的new URL(url, base)构造URL时base路径被剥离的问题

问题原因

你使用new URL("/items", "https://example.com/v1")时,第一个参数/items是绝对路径(以斜杠开头),这会直接替换base URL中的/v1路径,导致最终结果丢失了v1部分。

修复方案

只需将第一个参数改为相对路径(去掉开头的斜杠),这样URL构造函数就会把它追加到base的路径后面:

const getUrl = () => {
  const ids = ["1","2","3"];
  // 去掉items前的斜杠,使用相对路径
  const url = new URL("items", "https://example.com/v1");
  url.searchParams.set("id", ids?.toString() ?? "");
  
  return url.toString();
};

console.log(getUrl());
// 输出:https://example.com/v1/items?id=1%2C2%2C3
补充说明

URL构造函数的核心规则:

  • 若第一个参数是绝对路径(以/开头),则直接作为新URL的pathname,完全覆盖base的pathname
  • 若第一个参数是相对路径(不以/开头),则会追加到base的pathname之后

内容的提问来源于stack exchange,提问作者Rahul Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:40:13