/ / CORS Pre-Flight fail only one method - c #, angularjs, asp.net-web-api, ionic, cors

CORS Pre-Flight zlyhajú iba jednu metódu - c #, angularjs, asp.net-web-api, ionic, cors

Mám mimoriadne neobvyklý problém, ktorý má právevyskočila. Píšem ionickú aplikáciu s back-endom webového rozhrania ASP.NET Web API. Problémy s CORS pred letom som riešil skoro, a to pridaním do metódy registrácie mojej triedy WebApiConfig:

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

Pri navigácii na každej stránke a uskutočňovaní rôznych hovorov $ http.get pracuje predletová služba CORS s pochúťkou (sieťová prevádzka je prevzatá z vývojových nástrojov prehliadača Chrome).

Príklad 1

Nedávno som však vo WebApi vytvoril ďalšiu metódu:

    [Authorize]
[Route("api/GetJobType")]
public IHttpActionResult GetJobType(int? id)
{
var model = new JobsModel();
return this.Ok(model.GetJobType(id.Value));
}

Ale predletová požiadavka MOŽNOSTI vracia 404:

tu zadajte popis obrázku

Toto je kód $ http.get:

    var url = ApiEndpoint.url + "/GetJobType/" + jobId;
$http.get(url).then(function(resp) {
alert(resp.data);

}, function(err) {
alert(err);
});

Akékoľvek nápady, prečo by požiadavka OPTIONS zlyhala iba pri jednej metóde, zatiaľ čo ostatné fungujú perfektne.

odpovede:

2 pre odpoveď č. 1

Zdá sa, že to nemá nič spoločné s predletovou požiadavkou, je to vaša trasa. Dostávate 404, čo znamená, že nemôže nájsť požadovaný zdroj. Pridajte svoj parameter na trasu.

[Authorize]
[HttpGet, Route("api/GetJobType/{id}")]
public IHttpActionResult GetJobType(int? id)
{
try
{
var model = new JobsModel();
return Ok(model.GetJobType(id.Value));
}
catch
{
return InternalServerError();
}
}