从OrchardCore模块中的JavaScript获取站点URL

从OrchardCore模块中的JavaScript获取站点URL,javascript,orchardcms,Javascript,Orchardcms,所以我有一个自定义的Orchard核心模块,它包含一个端点。 在模块中,我还将使用JavaScript响应单击事件并需要发布到模块端点 我可以通过POSTMAN调用并确认端点工作,但是我的JavaScript如何获取基本URL/站点URL以添加端点路径?您可以这样做: var baseUrl=window.location.protocol+“/”+window.location.hostname; 这应该只提供协议和域名,而不向其中添加任何路径或参数。在诸如orchard之类的CMS中工作时

所以我有一个自定义的Orchard核心模块,它包含一个端点。 在模块中,我还将使用JavaScript响应单击事件并需要发布到模块端点


我可以通过POSTMAN调用并确认端点工作,但是我的JavaScript如何获取基本URL/站点URL以添加端点路径?

您可以这样做:

var baseUrl=window.location.protocol+“/”+window.location.hostname;

这应该只提供协议和域名,而不向其中添加任何路径或参数。

在诸如orchard之类的CMS中工作时,我通常将API端点放在数据属性中。这意味着您可以使用URL帮助程序创建URL。例如:

<div id="my-config" data-post-url="@Url.Action("MyAction", "MyController")"></div>

在网页中,我添加了以下链接:


在Javascript中,我使用以下方式访问:

$.ajax({
url:$form[“0”].dataset.postrl,
类型:“POST”,
数据:{
...
}

你能发布到目前为止的代码吗?我正在修改OrchardCore中的“代理”主题。因此html模板将当前进行客户端验证的JavaScript链接到PHP,然后将ajax帖子链接到PHP。我想用自定义电子邮件模块的动态链接替换PHP的URL。如果有orchard服务允许我获得st/tenant,然后我需要以某种方式将此值传递到JavaScript文件。由于这是OrchardCore,可能有多个租户。我不明白您的意思。@GadgetGeekUK
在您的js中:
$(“#某些id”).data(“apirl”)
啊,我明白了。我想这类似于在CSHTML中获取值,然后在同一页面中设置“全局”JavaScript变量,然后在JS文件中访问这些变量。(但是更干净了一步!)
var configElement = document.getElementById("my-config");
var postUrl = configElement.dataset.postUrl;