Better Call Zam
405 method not allowed for "PUT" method
Me encuentro desarrollando una aplicación #AngularJS que llama un API de .Net. Todo iba bien hasta que mi UPDATE empezó a darme problemas, lo cual era bastante raro pues no recuerdo haber cambiado alguna configuración o similares. Dado que era un trabajo colaborativo hice mi respectivo commit and push para verificar si sólo me pasaba a mí así que procedí y en efecto, sólo me pasaba a mí.
Unos de mis compañeros lo corrió en su maquina y todo funcionaba bien pero dado que yo estaba desarrollando esa parte era necesario que arreglara mi asunto para continuar así que se nos ocurrió la idea de que usara su versión y eliminar la mía por si había algo en el código de las configuraciones mías que afectara, respaldé claro.
Una vez con la "nueva y correcta versión" hice las pruebas pertinentes pero no, no funcionó.
Leyendo un poco supe que hay ciertas configuraciones que suelen afectar los verbos en la conexión, así que verifiqué las configuraciones del IIS pero en realidad no había mucho que activar o cambiar. Por lo poco que hice reincié con esperanza y al intentar de nuevo no funcionó sin embargo recordé que en el Web config puedes dar ciertas instrucciones para que tu aplicación evite o agregue "funcionamientos" que no debieran afectar otras aplicaciones. Por lo tanto, hice una búsqueda un tanto más especifica y me topé con esto:
*Los espacios iniciales son para evitar errores al mostrar el código.
< system.webServer>
< modules>
< remove name="WebDAVModule" />
< / modules>
< handlers>
< remove name="WebDAV" />
< / handlers>
system.webServer>
Santo remedio. Pude hacer un PUT sin novedad y así seguir con mis siguientes bugs, uno de los cuales eran los undefined.
Investigué un poco acerca del WebDAV y pude ver que es algo un tanto importante así que si no sabes del tema no estaría de más una vuelta por Wikipedia.
Solución: Agrega esas líneas a tus Web configs y que la fuerza te acompañe.