[英]Enabling CORS with ASP.NET WEb API hosted by IIS 8.5
我在托管通過2012 R2中運行的IIS 8.5托管的啟用CORS的ASP.NET(2.1)Web API時遇到問題。 我已使用以下代碼在Web API配置中啟用了CORS:
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在具有IIS Express的開發機上運行時,angular.js客戶端可以正確調用Web api。 瀏覽器首先發送OPTIONS,然后發送GET,POST,PUT或DELETE。 沒問題。
然后,我在IIS 8.5中創建了一個新網站並將Web api應用程序部署到該網站中。 首先,我遇到了瀏覽器為每個OPTIONS請求接收HTTP 405的問題。 好的,我為我的網站啟用了OPTIONSVerbHandler,瀏覽器開始收到200 OK。 但是,它錯過了所有必需的CORS標頭。 我可以通過將自定義標頭手動添加到每個Web請求中來克服。
這讓我感到奇怪,為什么我需要在不同的地方定義CORS設置; Web API應用程序,處理程序映射和自定義標頭。 還是我在這里做錯了什么?
我想知道您的應用程序配置是否存在問題。 使用web.config文件中的以下設置重試:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.