如何在jQuery中获取Request.ApplicationPath

时间:2018-01-23 14:08:22

标签: javascript jquery razor

在我的剃刀视图中,我想将所有jQuery放入一个单独的JS文件中,然后使用@Scripts.Render在视图上引用该文件。

在我看来,我有一个看起来像这样的jQuery:

var settings = {};
settings.baseUri = '@Request.ApplicationPath';
var submissionUrl = "";
if (settings.baseUri === "/ProjectNameOnServer") {
    submissionUrl = settings.baseUri + "/api/apiControllerName/apiControllerMethodName/";
} else {
    submissionUrl = settings.baseUri + "api/apiControllerName/apiControllerMethodName/";
}

这部分代码允许我测试在我的本地主机上使用api提交表单并在服务器上运行,而不必更改URL。

如果我在我的本地主机上进行测试,那么@Request.ApplicationPath == /,但如果我在我的服务器上进行测试,那么@Request.ApplicationPath == /ProjectNameOnServer

我想知道如何获得这些相同的值,但不使用Razor,而只使用jQuery。

我试过了:

var settings = {};
settings.baseUri = window.location.protocol + "//" + window.location.host;

然后是settings.baseUri == http://localhost:xxxxx。我只需要@Request.ApplicationPath正在给我的东西。

1 个答案:

答案 0 :(得分:1)

使用location.host有条件地创建相对路径

settings.baseUri = location.host.includes('localhost') ? '/' : '/ProjectNameOnServer';