找不到插件区域中的UmbracoApiController

问题描述 投票:0回答:1

我创建了一个名为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

umbraco umbraco7
1个回答
0
投票

编辑:

对于Umbraco中的AngularJs控制器/资源,只需执行以下操作:

更改

$.get('~/Umbraco/AreaName/FormDatasource/GetAllCountries', null)

$.get('AreaName/FormDatasource/GetAllCountries', null)

这应该让你的电话工作。忽略~/Umbraco/位。

您的API调用应该是:

~/Umbraco/AreaName/FormDatasource/GetAllCountries

请参阅https://our.umbraco.org/documentation/Reference/Routing/WebApi/#plugin-based-controller上的“基于插件的控制器”。

注意,如果你继承自'UmbracoAuthorizedApiController'或'UmbracoAuthorizedJsonController'你的api调用应该是这样的:

~/Umbraco/backoffice/AreaName/FormDatasource/GetAllCountries

有关更多信息,请查看Backoffice控制器下的文档站点中此页面的底部:

https://our.umbraco.org/documentation/Reference/Routing/WebApi/

© www.soinside.com 2019 - 2024. All rights reserved.