Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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
在Javascript中获取网站根目录_Javascript_Asp.net Mvc_Path - Fatal编程技术网

在Javascript中获取网站根目录

在Javascript中获取网站根目录,javascript,asp.net-mvc,path,Javascript,Asp.net Mvc,Path,假设我正在开发一个网站。我需要动态地获取根目录(website.com)(用于开发和生产)。有没有办法在JS中实现这一点 我正在服务器上使用asp.net mvc 3。是:请参阅: 引自链接: 您可以连接位置协议和主机: var root=location.protocol+'/'+location.host; 对于url,假设为“”,它将返回“” 我创建了一个函数来获取真正的根: function root() { var scripts = document.getEleme

假设我正在开发一个网站。我需要动态地获取根目录(website.com)(用于开发和生产)。有没有办法在JS中实现这一点

我正在服务器上使用asp.net mvc 3。

是:

请参阅:

引自链接:

您可以连接位置协议和主机: var root=location.protocol+'/'+location.host; 对于url,假设为“”,它将返回“”


我创建了一个函数来获取真正的根:

function root() {
        var scripts = document.getElementsByTagName( 'script' ),
            script = scripts[scripts.length - 1],
            path = script.getAttribute( 'src' ).split( '/' ),
            pathname = location.pathname.split( '/' ),
            notSame = false,
            same = 0;

        for ( var i in path ) {
            if ( !notSame ) {
                if ( path[i] == pathname[i] ) {
                    same++;
                } else {
                    notSame = true;
                }
            }
        }
        return location.origin + pathname.slice( 0, same ).join( '/' );
    }
加载js文件时调用此函数一次。
要使其工作,必须将其作为js文件包含

用法: 以下是一些例子:

location.host: 'http://test.com'
location.path: '/myapp/controller/action/id'
这将导致:

http://test.com/myapp

您可以使用ajax调用从服务器获取它。您是否更改了问题?我以为你问了一个JS问题,但也许你想要一个asp.net的答案?对于主机:
Request.Url.host
虽然这适用于这个特定的问题(root保证等于主机名),但它没有解决在其他情况下如何直接获取根Url的问题。
http://test.com/myapp