【问题标题】:AWS - has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resourceAWS - 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
【发布时间】:2020-05-03 15:47:25
【问题描述】:

我在 AWS 上为我的网站使用了 Visual Studio Net 2.1 和本地 sql 数据库。第一页出现了,但是当我尝试输入评论并且代码路由到我网站上的另一个页面时,我收到此控制台错误,并且该页面未路由到浏览器中:

Access to XMLHttpRequest at 'https...' from origin 'https://www.....dev' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是 startup.cs 文件

            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                       );
            });

           app.UseCors("CorsPolicy");

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

【问题讨论】:

  • 我不清楚您的 XMLHttpRequest 将使用什么资源,但无论 'https...' 在哪里,这都是 cors 需要明确允许 'https://www.....dev'
  • XMLHttpRequest 是 AWS 上用于我的无服务器后端的端点。

标签: asp.net amazon-web-services


【解决方案1】:

对于某些 CORS 请求,浏览器会在发出实际请求之前发送一个额外的 OPTIONS 请求。该请求称为预检请求。如果满足以下所有条件,浏览器可以跳过预检请求:

  1. 请求方法是 GET、HEAD 或 POST。
  2. 该应用没有设置除 Accept、Accept-Language、Content- 之外的请求标头 语言、Content-Type 或 Last-Event-ID。
  3. Content-Type 标头(如果已设置)具有以下值之一: 应用程序/x-www-form-urlencoded 多部分/表单数据 文本/纯文本

AllowAnyOrigin 影响预检请求和 Access-Control-Allow-Origin 标头。

预检请求使用 HTTP OPTIONS 方法。它可能包括以下标题:

Access-Control-Request-Method:将用于实际请求的 HTTP 方法。 Access-Control-Request-Headers:应用程序在实际请求中设置的请求标头列表。 访问控制允许方法

尝试允许特定的来源、方法和标头。 欲了解更多信息,请查看以下链接:

https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-3.1#preflight-requests

【讨论】:

  • 我正在使用 .AllowAnyHeader() 和 .AllowAnyMethod() 所以这应该可以工作。可能和AWS有关
【解决方案2】:

答案是在 AWS 中启用 api-gateway

在 API Gateway 控制台中,单击操作下拉菜单并选择部署 API。

这消除了 CORS 问题。

【讨论】:

    猜你喜欢
    • 2019-12-05
    • 2020-01-24
    • 2021-12-27
    • 1970-01-01
    • 2020-04-16
    • 2021-04-28
    • 2022-06-21
    • 2022-07-19
    • 2020-02-12
    相关资源
    最近更新 更多