我們有一個Intranet應用程序,我們正在使用AngularJS前端和Web Api後端。它基本上是對現有的ASP.NET/WCF應用程序的重新設計,它只被我們的一些員工使用。帶有web api的訪問控制允許來源請求
我們打算使用Windows身份驗證來強制執行此版本中的某些安全性(舊版本中沒有),並且我們在使用Internet Explorer以外的瀏覽器時遇到了一些問題。例如,Chrome始終會出現401-未經授權的錯誤。我已經被指示跳過現在的安全功能(是的,我知道,不是一個好主意),所以我禁用了它們,但現在我看到一個錯誤,當我試圖與API交談(在一個單獨的項目),但在Chrome中,而不是在IE中。
XMLHttpRequest無法加載http://localhost:62415/api/Emails。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許訪問原產地'http://localhost:50900'。響應的HTTP狀態碼爲401.
我們在我們的API項目中啓用了CORS,所以我不確定我需要在這裏做什麼。我們在本地開發中使用本地主機,但在質量保證中使用本地主機,並且這些網站將使用同一域中具有不同子域的URL。
我用我的項目啓動類,它有這個方法:
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
app.UseWebApi(config);
}
我必須失去了一些東西。我們原本在我們WebApiConfig這個代碼,但恢復它並沒有解決任何事情:
var cors = new EnableCorsAttribute("*", "*", "*");
cors.SupportsCredentials = true;
config.EnableCors(cors);
任何幫助表示讚賞。
別t使用ASP.net足以說,但你有什麼應該這樣做,一些其他的替代品在這裏http://enable-cors.org/server_aspnet.html你應該看到一個請求與方法設置爲OPTION在真正的GET/POST之前出現在對該請求的響應中時,標題應該指定允許訪問控制起源設置爲*或任何實際的客戶域。 – shaunhusain