如何在.Net Core中为Web API Ajax调用启用cors

时间:2018-06-30 10:09:35

标签: ajax .net-core

尝试使用ajax调用从.net核心Web api提取数据时遇到以下错误

无法加载http://localhost:8085/api/menu:飞行前响应包含无效的HTTP状态代码404。

但正在成功地从邮递员那里获取数据。

我正在尝试下面的Ajax代码

$(document).ready(function(){
  $.ajax({ 
    url: 'http:/localhost:8085/api/menu', 
    type: 'GET', 
    dataType: 'json',
    data: '{ }',
    success: function (data) { 
        console.log(data); 
    },
    failure: function (data) {  
        alert(data.responseText);  
    }, //End of AJAX failure function  
    error: function (data) {  
        alert(data.responseText);  
    } 
  });
});

我在web.config文件中添加了以下标记

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
  </customHeaders>
</httpProtocol>

请提出您的想法。 谢谢。

1 个答案:

答案 0 :(得分:4)

您可以在Startup文件中定义策略,作为ConfigureServices方法的一部分

例如:

{
  services.AddCors(c => {
      c.AddPolicy("policyName", p => {
          p.AllowAnyOrigin().AllowAnyMethod();
      });
  });
}

,然后使用Configure方法

app.UseCors("policyName");