Asp.net
向 Asp.NET 中的選項預檢請求添加“訪問控制允許來源”響應
我在 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 的問題。
在您的程式碼中,您已使用方法中的
AddCors和UseCors方法啟用 CORSConfigure,請確保您已遵循指定 CORS 策略(在ConfigureServices方法中使用)和如何在 ASP.NET 5 中啟用 CORS 中提供的說明您也可以簡單地為普通的 Asp.net MVC 控制器編寫一個動作過濾器。
CORS 的類型
Microsoft.AspNet.WebApi.Cors:使用它來僅為 Web API 啟用 CORS 請求。Microsoft.AspNet.Cors:使用它為 MVC 控制器啟用 CORS。Microsoft.Owin.Cors:使用它來為到達您站點的所有跨域請求啟用 CORS,例如,當您要為 Web API 和 SignalR 啟用 CORS 時。