【问题标题】:'Access-Control-Allow-Origin' in ASP.NET Core 6ASP.NET Core 6 中的“访问控制允许来源”
【发布时间】:2022-01-05 05:52:33
【问题描述】:

Postman 中测试并且工作正常。 在浏览器中我得到这个错误:

访问 XMLHttpRequest 在 'http://localhost:5081/api/Accounting/GetSales' 来自原产地 'https://localhost:44426' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。

带有 Angular 和 .Net6 的 Asp Net Core 项目

[DisableCors]
[HttpGet("GetSales")]
        public IEnumerable<SaleDto> GetSales()
        {
            var result = _context.Sales.Select(x => new SaleDto
            {
                AccountName = x.Account.Name,
                CategoryName = x.Category.CategoryName,
                SaleDate = x.SaleDate,
                SaleId = x.SaleId,
                SaleValue = x.SaleValue,
            });
            return result;
        }

【问题讨论】:

  • 您必须在服务器上公开 cors。 DisableCors 失败了
  • 邮递员不关心 CORS。浏览器可以。您为该调用明确禁用了 CORS,那么您为什么想知道它不起作用?
  • 在没有 DisableCors 的情况下对其进行了测试,但仍然无法正常工作。
  • 那么,你配置好CORS了吗? docs.microsoft.com/en-us/aspnet/core/security/…

标签: c# asp.net-core asp.net-core-6.0


【解决方案1】:

注册中间件时是否有正确的条目? https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-6.0

您需要添加 localhost 和端口号。我相信端口号目前正在导致问题。如果两个站点都在同一个端口号上,您可能不会遇到此问题。 另外,请参阅同一域上 CORS 错误的答案。 CORS error on same domain?

另外,您希望启用 CORS 而不是禁用它。 CORS 放宽了安全措施,因此您的代码可以跨端口访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2016-03-08
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多