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).
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:
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ď č. 1Zdá 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();
}
}