Asp.net web api Web API CORS支持不在http上工作

Asp.net web api Web API CORS支持不在http上工作,asp.net-web-api,cors,Asp.net Web Api,Cors,我已经在我的Web API控制器上启用了CORS支持,它在https上运行良好,但在http上,我仍然收到请求的资源错误上存在的o“Access Control Allow Origin”头 在WebApiConfig中,我使用以下行启用了cors: // Allow cross site javascript calls config.EnableCors(); 我的控制器类是这样介绍的: [EnableCors("*","*","*")] public class ExternalDa

我已经在我的Web API控制器上启用了CORS支持,它在https上运行良好,但在http上,我仍然收到请求的资源错误上存在的o“Access Control Allow Origin”头

在WebApiConfig中,我使用以下行启用了cors:

// Allow cross site javascript calls
config.EnableCors();
我的控制器类是这样介绍的:

 [EnableCors("*","*","*")]
 public class ExternalDataController : ApiController    
那么如何在http和https上启用CORS呢

在azure原始http日志上,创建一个调用时会出现以下行:

2015-05-06 05:53:15 ~1PROJECTX GET /diagnostics/settings X-ARR-LOG-ID=d5d487c0-8d32-4103-98cb-37fd7b022942 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 - - projectx-development.scm.azurewebsites.net 200 0 0 733 1215 3921
2015-05-06 05:53:20 ~1PROJECTX POST /diagnostics/settings X-ARR-LOG-ID=599cb771-d399-49ee-89a2-6804af7c2712 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 ARRAffinity=a32808ec0f09a64a5ce1705808bf8a2fb0c447c78db8498153641c9469a96a96 - projectx-development.scm.azurewebsites.net 204 0 0 500 1497 156
2015-05-06 05:53:21 ~1PROJECTX GET /diagnostics/settings X-ARR-LOG-ID=6d7bcfd4-aeeb-4c02-9f02-cf5bd54d2189 443 - 137.116.210.73 Portal-Exp/5.11.2.704+(Websites)+Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML%2C+like+Gecko)+Chrome/42.0.2311.90+Safari/537.36+OPR/29.0.1795.47 ARRAffinity=a32808ec0f09a64a5ce1705808bf8a2fb0c447c78db8498153641c9469a96a96 - projectx-development.scm.azurewebsites.net 200 0 0 732 1301 78

对不起,我没有在控制器级别进行检查

在WebApi配置级别,我有以下内容,它正在按预期工作

 var cors = new EnableCorsAttribute("*", "*", "*") ;
            config.EnableCors(cors);
同样,如果您使用的是基本身份验证,那么请确保您也设置了SupportsCredentials值

        var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };

你用OWIN吗?只需在
配置中启用CORS
方法:

    public void Configuration(IAppBuilder app)
    {
        #region CORS

        app.UseCors(CorsOptions.AllowAll); 

        #endregion 

请为客户端请求和响应发布http原始头。您可以使用fiddler获取这些详细信息。此外,还需要检查配置级别是否允许该方法类型。我已经看到默认情况下不允许删除,这也会造成这个问题。我正在通过以下调用从JSFIDLE测试软件:$.ajax({type:“GET”,url:}).done(函数(数据){alert(数据);}).error(函数(jqXHR,textStatus,errorshown){});在web.config中,我已从http重定向到https。。。我认为这是造成问题的原因。实际上,我在同一个项目中使用了带有Owin和Web API控制器的ASP.NET MVC。我尝试了那个app.usecors,但仍然没有改进。我不得不删除config.enablecors,因为它引发了关于多个x源标题的错误