根网址 javascript

Posted

技术标签:

【中文标题】根网址 javascript【英文标题】:root url javascript 【发布时间】:2011-10-17 01:00:00 【问题描述】:

我正在开发一个 .Net ASP MVC 剃须刀应用程序

服务器上的根 url 是“myWebSite.com/myApp/”

我需要动态地找到这个 url 以获得正确的 url 来像这样进行一些 Ajax 号召性用语

    $.ajax(
    
        type: "POST",
        url: root + "/Controller/Action",
        data: ...
    

我在这里和那里读了一些东西,但我发现没有用

"document.location.hostname" -> "myWebSite.com"
"location.host"              -> "myWebSite.com"
"window.location.pathname"   -> "/myApp/"

最后一个听起来很有希望,但如果我在网站上导航:

 for an url :  "myWebSite.com/myApp/Controller/Action?1" 
 "window.location.pathname"   -> "/myApp/Controller/Action"

【问题讨论】:

【参考方案1】:

这个怎么样?

var root = "<%=Request.ApplicationPath%>";
alert(root);

它是否提供正确的根 URL?

【讨论】:

【参考方案2】:

你不需要找到这个。使用真实路径:

    $.ajax(
    
        type: "POST",
        url: "Controller/Action",
        data: ...
    

这将输入为&lt;root&gt;/Controller/Action

【讨论】:

这实际上是我在本地使用的,但在服务器上我必须写 url: "MyApp/Controller/Action" 这似乎是唯一可行的方法,但必须改变它是一件很痛苦的事每次我把它放在服务器上的链接,即使它工作,我需要在 googlemap 上显示一些图标,因为我需要我还需要正确的根【参考方案3】:

在 asp.net mvc 中,使用 razor 视图引擎,我在布局中得到了这个:

<script type="text/javascript">
 var baseUrl = "@Url.Content("~")";
</script>

这样我们可以将应用程序的基本 url 定义为可以从任何地方访问的 javascript 对象。

【讨论】:

【参考方案4】:

我用这个:

剃须刀:

Uri auxBaseUri = new Uri(Request.Url.GetLeftPart(UriPartial.Authority));
Uri baseUri = new Uri(auxBaseUri, Url.Content("~"));   

然后在我使用的js中:

var baseUrl = "@baseUri.ToString()";

$.ajax
(
    type: "POST",
    url: baseUrl + "Controller/Action",
    ...

它适用于我的机器和服务器。 希望对你有帮助

【讨论】:

以上是关于根网址 javascript的主要内容,如果未能解决你的问题,请参考以下文章

React-router“无法获取/ *”除了根网址

JavaScriptJavaScript基础

JavaScriptJavaScript基础

javascriptjavascript常用函数大全

javascriptJavaScript数组常用方法

javascriptjavascript设计模式之工厂模式