Asp.net web api 2sxc CustomWebApi启用CORS

Asp.net web api 2sxc CustomWebApi启用CORS,asp.net-web-api,dotnetnuke,2sxc,Asp.net Web Api,Dotnetnuke,2sxc,我创建从SxcApiController继承的自定义webapi, 但当我尝试从不同的域使用此api时,我收到一条消息: No 'Access-Control-Allow-Origin' header is present on the requested resource. 我的控制器方法中有以下属性: [HttpPost] [DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)] 我这样称呼我的方法: $.

我创建从SxcApiController继承的自定义webapi, 但当我尝试从不同的域使用此api时,我收到一条消息:

No 'Access-Control-Allow-Origin' header is present on the requested resource.
我的控制器方法中有以下属性:

[HttpPost]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)]
我这样称呼我的方法:

    $.ajax({  
        url: apiurl,  
        type: 'POST',
        //headers: {
        //  'Access-Control-Allow-Origin': '*'
        //},
        //crossDomain: true,
        dataType: 'json',  
        data: data,  
        success: function (d) {  
            debugger;
            alert("Saved Successfully");  
        },  
        error: function (d) {  
            debugger;
            alert("Error please try again");  
        }  
    });
如果启用crossDomain并添加标头,则错误将更改为:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我认为SxcApiController是从DNNAPI控制器继承来的,也不知道如何在DNN上启用CORS

启用此方法的CORS还缺少什么

================编辑1================

我将此添加到承载api的web.config中:

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
我还缺少什么

================编辑2:现在可以了================

我在方法中添加了此属性,现在可以了:

[HttpPost]
[AllowAnonymous]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)]

好极了,听起来你让它工作了+实际上这不是CORS的问题


正如一些附加信息一样:如果您真的想为其他域启用具有身份验证的CORS,您需要更深入,因为在这种情况下,浏览器将进行飞行前检查,以真正检查是否允许在请求中包含身份验证和cookie。这是IMHO DNN没有提供的,您必须使用asp.net magic启用它-基本上是通过为飞行前创建一个特殊的请求处理程序,或者在web.config中使用asp.net头重写

有没有关于如何在DnnI中实际实现这个(EnableCors)的例子?我想你必须用谷歌搜索一下,因为这是DNN问题,而不是2sxc问题。我们通常在web.config中启用它,但我想人们有不同的偏好/方法。
[HttpPost]
[AllowAnonymous]
[DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.Anonymous)]