【问题标题】:How to enable cors in .Net Core for web api ajax call如何在 .Net Core 中为 web api ajax 调用启用 cors
【发布时间】:2018-12-09 08:48:54
【问题描述】:

我正在尝试使用 ajax 调用从 .net core 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>

请提出您的想法。 提前谢谢。

【问题讨论】:

    标签: ajax .net-core


    【解决方案1】:

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

    例如:

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

    然后在Configure方法中

    app.UseCors("policyName");

    【讨论】:

    • 感谢您的回复,我已经在上面尝试过,但仍然遇到不同的问题 jquery.min.js:4 GET localhost:5000/localhost:8085/api/menu?{%20} 404(未找到)
    • 你的地址包含两次 localhost - 我 99% 确定某处存在错误,它可能应该是 localhost:5000 或 localhost:8085
    • 我修复了一个错误,现在工作正常,再次感谢您。
    • 完美,请将此解决方案标记为有效答案,以便其他遇到相同问题的人可以看到它。
    • 这个是在调用者webapp还是calee web api中配置?
    猜你喜欢
    • 2019-01-24
    • 2017-07-01
    • 2019-10-03
    • 1970-01-01
    • 2017-11-22
    • 2020-03-23
    • 2015-10-16
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多