【问题标题】:URL has been blocked by CORS policyURL 已被 CORS 策略阻止
【发布时间】:2021-01-25 20:39:09
【问题描述】:

我在 Angular 版本 1 中从 ASP.Net MVC 调用 API 时遇到错误

错误: 从源“URL 2”访问“URL 1”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。

我在 WebApiConfig 中使用以下代码:

     var corsAttr = new EnableCorsAttribute("*","*","*");
                config.EnableCors(corsAttr);

之后我尝试使用以下代码:

var corsAttr = new EnableCorsAttribute("*","Content-Type", "GET,POST,PUT,DELETE,OPTIONS");
            config.EnableCors(corsAttr);

和:

var corsAttr = new EnableCorsAttribute("https://rushpeik.ir","Content-Type", "GET,POST,PUT,DELETE,OPTIONS");
            config.EnableCors(corsAttr);

问题依旧

【问题讨论】:

  • ASP.Net MVC 的版本是多少?
  • 点网框架4.5.1
  • 这能回答你的问题吗? How to enable CORS in ASP.NET Core
  • 不,它只适用于 ASP.net .Core
  • 人们在这种情况下似乎犯的一个常见错误是试图在错误的项目中应用 CORS 设置 - 因此,要清楚,您显示的代码是您添加到的代码API 项目?

标签: c# asp.net-mvc


【解决方案1】:

将其添加到您的 Api 类上方

[EnableCors(origins: "https://rushpeik.ir", headers: "*", methods: "*")] 
public class YourController : ApiController
{
        // Whatever
}

【讨论】:

    【解决方案2】:

    我找到了解决办法:

    首先必须在 WebApiConfig 中使用以下代码

         var corsAttr = new EnableCorsAttribute("*","*","*");
                    config.EnableCors(corsAttr);
    

    之后将以下代码添加到 web.config

    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Credentials" value="true" />
      </customHeaders>
    </httpProtocol>
    

    我们必须允许“Access-Control-Allow-Headers”中的所有自定义标题,如下行:

     <add name="Access-Control-Allow-Headers" value="Content-Type,Token,Username" />
    

    它对我有用:)

    【讨论】:

      【解决方案3】:

      这里你需要在你的startup.cs的Configure()方法中添加这个

      app.UseCors(builder => builder.WithOrigins("*")
                                     .AllowAnyMethod()
                                     .AllowAnyHeader());
      

      【讨论】:

        猜你喜欢
        • 2021-01-07
        • 1970-01-01
        • 2021-09-05
        • 2021-10-13
        • 2019-11-01
        • 2023-04-10
        • 1970-01-01
        • 2020-10-31
        • 2021-10-27
        相关资源
        最近更新 更多