繁体   English   中英

AWS - 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”header

[英]AWS - has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

我在 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();
            });

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

  1. 请求方法是 GET、HEAD 或 POST。
  2. 除了 Accept、Accept-Language、Content-Language、Content-Type 或 Last-Event-ID 之外,应用程序不会设置请求标头。
  3. Content-Type header(如果设置)具有以下值之一:application/x-www-form-urlencoded multipart/form-data text/plain

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

预检请求使用 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

答案是在 AWS 中启用 api-gateway

在 API 网关控制台中单击操作下拉菜单和 select 部署 API。

这消除了 CORS 问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM