Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根url javascript_Javascript_Asp.net_Asp.net Mvc_Ajax - Fatal编程技术网

根url javascript

根url javascript,javascript,asp.net,asp.net-mvc,ajax,Javascript,Asp.net,Asp.net Mvc,Ajax,我正在开发一个.Net ASP MVC razor应用程序 服务器上的根url为“myWebSite.com/myApp/” 我需要动态地找到这个url,以获得正确的url,从而进行类似这样的Ajax调用 $.ajax( { type: "POST", url: root + "/Controller/Action", data: ... } 我到处读一些东西,但我发现不起作用 "document.location.hos

我正在开发一个.Net ASP MVC razor应用程序

服务器上的根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"
这个怎么样

var root = "<%=Request.ApplicationPath%>";
alert(root);
var root=”“;
警报(根);

它是否提供了正确的根URL?

您不需要找到它。使用实时路径:

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

这将作为asp.net mvc中的
/Controller/Action

进入,使用razor视图引擎,我在布局中获得了以下内容:

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

var baseUrl=“@Url.Content(“~””);
这样,我们可以将应用程序基url定义为可以从任何地方访问的javascript对象。

我使用以下方法:

在razor中:

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",
    ...
它在我的机器和服务器上工作。
希望它有帮助

这实际上是我在本地使用的,但在服务器上我必须写url:“MyApp/Controller/Action”这是它看起来唯一有效的方法,但每次我把链接放到服务器上都必须更改链接,这真是一件痛苦的事,即使它有效,我也需要在谷歌地图上显示一些图标,为此,我需要正确的根