【问题标题】:javascript get Path Name represented in "browser address bar"javascript获取“浏览器地址栏”中表示的路径名称
【发布时间】:2011-05-19 02:48:25
【问题描述】:

有没有办法使用javascript获取请求的路径(浏览器地址栏中显示的路径)与子域的重定向路径(对用户隐藏)

我正在使用一个共享的 javascript 文件(跨多个页面和站点共享),该文件使用 window.location.pathname 确定控制器和操作 (MVC),但是......我刚刚发现自己的部署在子目录下运行我没有在 Visual Studio 开发环境中代表的域。通常情况下,我主机上的子域重定向到 /subdomain 文件夹,但现在我的 window.location.pathname 拉回 /subdomain/controller/action 而地址栏中的 URL 是 /controller/action

显然,我可以调整我的 javascript 来处理这种情况 - 但是可能并不总是有一个子域(至少在我的开发环境中,如果没有别的 - 我完全反对在我的代码中使用“isdev”样式标志等解决方案)所以我必须对这些实例进行故障转移,这意味着事情开始变得更加复杂,因此更容易出错。

非常感谢任何建议。

顺便说一句,我不想​​使用 .Net 中的值,例如HttpContext ... 因为我的 js 在外部文件中,我不想在视图中创建对数据的依赖以使其正常工作,因为这意味着每次我在新页面上使用 js 时,我都必须记住包含视图中的额外逻辑使其工作,另外,如果我更改我的 js 文件,它可能会导致我也不得不重构一堆视图。

干杯 抢

【问题讨论】:

标签: javascript asp.net-mvc model-view-controller


【解决方案1】:

window.location.href 应该返回站点当前所在的整个 URL,包括子域 e.g. @987654321@

您也可以使用window.location.host,它会返回除路径之外的所有内容,或者window.location.pathname 仅返回文件的相对路径。

有关更多信息,请参阅有关 window.location 的 MDC 文章:https://developer.mozilla.org/en/DOM/window.location

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2012-04-08
    • 2013-02-14
    • 2013-07-04
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多