ho creato un'API web 2 e sto cercando di fare una richiesta di dominio trasversale ad esso, ma sto ottenendo il seguente errore:OPZIONI 405 (Metodo non ammessi) API Web 2
OPTIONS http://www.example.com/api/save 405 (Method Not Allowed)
I hanno avuto un'occhiata in giro e la maggior parte delle soluzioni per questo problema stanno dicendo che devo installare COR da NuGet e consentire così ho installato il pacchetto e segnato la mia controller con
[EnableCors("*", "*", "*")]
Ma questo ancora non ha risolto il problema.
mio ApiController
solo ha il seguente metodo Save
in:
[ResponseType(typeof(int))]
public IHttpActionResult Save(Student student)
{
if (ModelState.IsValid)
{
using (StudentHelper helper = new StudentHelper())
{
return Ok(helper.SaveStudent(student));
}
}
else
{
return BadRequest(ModelState);
}
}
Questo è il mio js da un dominio diverso:
$.ajax({
type: "POST",
crossDomain: true,
data: JSON.stringify(student),
crossDomain: true,
url: 'http://www.example.com/api/save',
contentType: "application/json",
success: function (result) {
console.log(result);
}
});
C'è qualcos'altro che devo fare per attivare questo?
Questo non risolve il problema, lo evita. Per coloro che hanno bisogno di supportare effettivamente le richieste OPZIONI di preflight, questo non è utile. – defines
@definisce questo risolve il mio problema quindi non c'è bisogno di downvotare - il mio problema era che avevo bisogno di una semplice richiesta in quanto non avevo bisogno di supportare il preflight. Se qualcuno sta cercando come supportare il preflight, questa domanda non riguarda questo, riguarda come potrei ottenere la mia chiamata ajax per parlare alla mia web API - e la risposta era di fare una semplice richiesta, non per abilitare il supporto per preflight –
Il titolo della domanda riguarda OPZIONI restituendo 405. Si evita del tutto la richiesta OPZIONI. Questa non è una risposta a tutto ciò, semplicemente lo evita. – defines