Asp.net

向 Asp.NET 中的選項預檢請求添加“訪問控制允許來源”響應

  • January 23, 2020

我在 Chrome 中收到以下錯誤:

對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。因此,不允許訪問源“ http://localhost:9000 ”。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
   loggerFactory.AddConsole(Configuration.GetSection("Logging"));
   loggerFactory.AddDebug();

   app.UseIISPlatformHandler();

   app.UseDefaultFiles();
   app.UseStaticFiles();

   app.UseCors(policy => policy
      .WithOrigins("http://localhost:9000")
      .AllowAnyMethod()
      .WithHeaders("Access-Control-Allow-Origin, Content-Type, x-xsrf-token, Authorization")
      .AllowCredentials());

   app.UseMvc();
}

根據 chrome,響應中沒有添加單個標頭。

access-control-allow-origin在 Asp.NET 5 中將標頭添加到選項響應的正確方法是什麼?

這實際上沒有任何意義,但正如@Sirwan 建議的那樣,使用.AllowAnyHeader()設置選項響應的訪問權限……

考慮到Google Chrome 存在不支持localhost通過Access-Control-Allow-Origin 的問題

在您的程式碼中,您已使用方法中的AddCorsUseCors方法啟用 CORS Configure,請確保您已遵循指定 CORS 策略ConfigureServices方法中使用)和如何在 ASP.NET 5 中啟用 CORS 中提供的說明

您也可以簡單地為普通的 Asp.net MVC 控制器編寫一個動作過濾器

CORS 的類型

  1. Microsoft.AspNet.WebApi.Cors:使用它來僅為 Web API 啟用 CORS 請求。
  2. Microsoft.AspNet.Cors:使用它為 MVC 控制器啟用 CORS。
  3. Microsoft.Owin.Cors:使用它來為到達您站點的所有跨域請求啟用 CORS,例如,當您要為 Web API 和 SignalR 啟用 CORS 時。

引用自:https://stackoverflow.com/questions/34076463