3 回答
TA貢獻1848條經驗 獲得超2個贊
看看我發現了什么!
在里面添加一些自定義標題<system.webServer>。
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
</customHeaders>
</httpProtocol>
然后我可以進行CORS身份驗證。
TA貢獻2019條經驗 獲得超9個贊
我為基于AngularJS的Web客戶端設置了許多試錯法。
對我來說,下面的方法適用于ASP.NET WebApi 2.2和基于OAuth的服務。
安裝
Microsoft.AspNet.WebApi.Corsnuget包。安裝
Microsoft.Owin.Corsnuget包。在Startup.cs文件中添加
config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS, PUT, DELETE"));到上面的WebApiConfig.Register(config);行。添加
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);到Startup.Auth.cs文件。這必須在打電話之前完成IAppBuilder.UseWebApi刪除Blaise所做的任何xml設置。
我在這里發現了很多設置變化和組合stackoverflow或博客文章。所以,布萊斯的方法可能會或可能不會錯。這只是我想的另一種設置。
TA貢獻1856條經驗 獲得超5個贊
經過幾個小時的搜索并查看了許多不同的解決方案,我已經設法按照下面的方式工作。
這種情況有很多原因。您很可能在錯誤的位置啟用了CORS,或者啟用了兩次或根本沒有啟用CORS。
如果您正在使用Web API和Owin Token端點,那么您需要刪除Web API方法中對CORS的所有引用并添加正確的owin方法,因為web api cors將無法與Token端點一起使用,而Owin cors將適用于兩個Web API和Token auth端點讓我們開始:
確保已安裝Owin Cors軟件包刪除您擁有的任何行eg.config.EnableCors(); 從您的WebAPIconfig.cs文件
轉到您的startup.cs文件,確保在任何其他配置運行之前執行Owin Cors。
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); ConfigureAuth(APP);
如果仍有問題請訪問:Startup.Auth.cs并確保在ConfigureAuth方法中有以下內容(如果您的startup.cs文件正確,則不需要此項)
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
- 3 回答
- 0 關注
- 686 瀏覽
添加回答
舉報
