在我的剃刀视图中,我想将所有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
正在给我的东西。
答案 0 :(得分:1)
使用location.host
有条件地创建相对路径
settings.baseUri = location.host.includes('localhost') ? '/' : '/ProjectNameOnServer';