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

使用location.href跳转时为何会在路径参数前自动添加斜杠?

路径自动补全斜杠的原因

这个行为并非JavaScript主动添加,本质是Web服务端的目录规范化重定向规则触发的,完整逻辑如下:

  • 你给location.href赋值的databases?page=settings属于相对路径,浏览器会先根据当前页面的基准URL拼接出完整的初始请求地址,比如当前页面在域名根路径下时,拼接后的地址为https://你的域名/databases?page=settings
  • 服务端收到请求后,会检测到databases是实际存在的目录,而非单个文件。Nginx、Apache等主流Web服务默认都开启了目录标准化规则:如果请求路径对应存在的目录且末尾未加斜杠,会自动返回301/302重定向响应,将路径末尾补充斜杠后跳转,同时保留原有查询参数,因此最终地址变为/databases/?page=settings
  • 整个重定向是服务端返回响应后浏览器自动执行的,和JavaScript的赋值逻辑没有关系,你可以在浏览器开发者工具的「网络」面板看到两次请求记录:第一次是代码触发的不带斜杠的请求,第二次是服务端引导的带斜杠的跳转请求
规避方案

如果要避免多余的重定向,直接在代码中给目录路径末尾补全斜杠即可:
location.href = "databases/?page=settings";


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:24:05