Soporte CORS para PUT y DELETE con ASP.NET Web API

Estoy trabajando con la versión final de ASP.NET Web API para implementar una API compatible con JavaScript. Por varios tutoriales, he habilitado CORS en mi web.config:

        

Con lo anterior, las solicitudes GET y POST entre dominios funcionan bien, pero las solicitudes PUT y DELETE fallan.

En Chrome:

El método PUT no está permitido por Access-Control-Allow-Methods.

El método DELETE no está permitido por Access-Control-Allow-Methods.

¿Se requiere algo adicional para que los verbos PUT y DELETE funcionen entre dominios?

Parece que agregar otro encabezado personalizado lo resolvió:

          

Además, además de la respuesta de Nathan, asegúrese de deshabilitar el módulo IIS de WebDAV y establecer la configuración runAllManagedModulesForAllRequests="true" en el archivo web.config:

         

Sin esto, las solicitudes CORS de verificación previa (que se utilizan para los métodos PUT, DELETE y para enviar solicitudes OPTIONS adicionales) no funcionarán.

Solución muy simple para superar CORS Issue en WEBAPI2.2.

Agregue lo siguiente en su archivo de configuración de WebApi.

 var cors = new EnableCorsAttribute("*", "*", "*"); Config.EnableCors(cors); 

Antes de agregar esto, asegúrese de quitar el encabezado personalizado en el archivo Web.config.

      

Si tiene tanto el encabezado personalizado como el CORS habilitado en WebApiconfig, se encontrará con el error cors.

Agregar los cors habilitados en la configuración de WebApi resolverá el problema.

Utilice esto en web.config mientras implementó su aplicación, no la use en la web.config local