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

Getting site URL from JavaScript in OrchardCore module

所以我有一个包含端点的自定义 Orchard Core 模块。 同样在模块中,我将有 JavaScript 响应点击事件并需要 POST 到我的模块端点。

我可以通过 POSTMAN 调用并确认端点有效,但我的 JavaScript 如何获取基础 URL/site 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 中访问它:

var configElement = document.getElementById("my-config");
var postUrl = configElement.dataset.postUrl;

在网页中我添加了 link:

<form id="myForm" name="postme" novalidate data-post-url="{{"~/MyModule/MyEndpoint" | href }}">

在 Javacript 中我使用:

$.ajax({ url: $form["0"].dataset.postUrl, type: "POST", data: { ... }