我创建了一个名为 FormDatasourceController 的UmbracoApiController,它驻留在我的插件区域,用于在ajax调用中获取或发布数据。
[PluginController("AreaName")]
public class FormDatasourceController : UmbracoApiController
{
[HttpGet]
public IEnumerable<ICountry> GetAllCountries()
{
return MerchelloConfiguration.Current.MerchelloCountries().Countries;
}
}
在cshtml文件中我有这个请求
<script type="text/javascript">
$(function(){
$('#sbmtBtn').on("click", function () {
$.get('~/Umbraco/AreaName/FormDatasource/GetAllCountries', null)
.success(function (data) {
alert(data);
})
.fail(function (e) {
alert('failed' + e);
});
});
});
但是,我总是得到错误状态404.我尝试使用EnableCors但没有运气。
有什么建议吗?我正在使用umbraco 7
答案 0 :(得分:0)
修改:
对于Umbraco中的AngularJs控制器/资源,只需执行以下操作:
变化
$.get('~/Umbraco/AreaName/FormDatasource/GetAllCountries', null)
到
$.get('AreaName/FormDatasource/GetAllCountries', null)
这应该让你的电话工作。忽略~/Umbraco/
位。
您的API调用应该是:
~/Umbraco/AreaName/FormDatasource/GetAllCountries
参见&#34;基于插件的控制器&#34;在https://our.umbraco.org/documentation/Reference/Routing/WebApi/#plugin-based-controller。
注意,如果您继承自&umbracoAuthorizedApiController&#39;或者&#39; UmbracoAuthorizedJsonController&#39;你的api电话应该是这样的:
~/Umbraco/backoffice/AreaName/FormDatasource/GetAllCountries
有关详细信息,请查看Backoffice控制器下文档站点中此页面的底部:
https://our.umbraco.org/documentation/Reference/Routing/WebApi/