Tengo esta llamada AJAX:
let errorModel = { exception: exception, extraMessage: extraMessage, time: Date.now() } $.ajax({ url: "/api/error/LogError", type: "POST", data: errorModel });Y este método web api 2 aquí en este controlador
[RoutePrefix("api/Error")] public class ErrorController : ApiController { [HttpPost] [Route("LogError")] public IHttpActionResult LogError([FromBody]ErrorModel errorModel) { try { _db.ErrorModels.Add(errorModel); _db.SaveChanges(); return Created(new Uri(Request.RequestUri + "/" + errorModel.Id), errorModel); } catch (Exception e) { return BadRequest(e.Message); } } }Pero cuando mi código llega a la llamada ajax, aparece un mensaje de error como este:
{ "message": "The requested resource does not support http method 'GET'." }¿Qué estoy haciendo mal aquí? Tengo muchas llamadas de API como esta, y todas funcionan.
He probado este código y encontré que funciona bien.
El mensaje de error que publicó parece indicar que está utilizando el método 'get' en ajax en lugar del método 'post'.
Encontré el resultado del popular 'cartero' del cliente REST.
Nota: he usado el tipo de datos de cadena para todas las propiedades de ErrorModel
Hola a todos, lo siento por tomar su tiempo, parece que fue un error estúpido de mi parte, parece que mi Javascript Date.Now () no devolvía lo que esperaba y el método api lo recibió como 00/00/0001 que fue negado por el servidor SQL. No estoy seguro de por qué el mensaje de error decía lo que era, pero después de que lo arreglé configurando la fecha y hora en la llamada a la API, el error se resolvió solo. Gracias a todos por su tiempo