根网址 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: ...
这将输入为<root>/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的主要内容,如果未能解决你的问题,请参考以下文章