是否有任何方法可以使用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文件,也可能导致我不得不重构一堆视图。
干杯 罗布
答案 0 :(得分:1)
window.location.href
应该返回该网站当前所在的整个网址,包括子网域e.g. http://subdomain.site.com/path/to/page.aspx
或者你可以使用window.location.host
,它将返回路径以外的所有内容,或者window.location.pathname
只返回文件的相对路径。
有关更多信息,请参阅有关window.location的MDC文章:https://developer.mozilla.org/en/DOM/window.location