Bir web API 2 oluşturduk ve ben buna bir web alanları arası isteği yapmaya çalışıyorum ama aşağıdaki hatayı alıyorum:SEÇENEKLER 405 (Yönteme İzin Verilmiyor) web api 2
OPTIONS http://www.example.com/api/save 405 (Method Not Allowed)
ben etrafına bir göz vardı ve bu sorun için en çözünürlükleri ben Nuget gelen CORS yüklemek ve etkinleştirmeniz gerekir söylüyoruz yüzden paketi yüklenmiş ve
[EnableCors("*", "*", "*")]
ile benim denetleyici işaretlenmiş Ama bu hala çözülmüş değil var sorun.
Benim ApiController
sadece sahiptir aşağıdaki Save
yöntemi:
[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);
}
}
Bu farklı bir etki alanından benim js geçerli:
$.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);
}
});
Bunu etkinleştirmek için yapmanız gereken başka bir şey var mı?
içinde etkin korsanlar var Bu sorunu çözmez, önler. Preflight OPTIONS isteklerini gerçekten desteklemeleri gerekenler için, bu yararlı değildir. – defines
@defines bu benim problemimi çözüyor, bu yüzden downvote etmeye gerek yok - benim problemim, preflightı desteklemem gerekmediği için basit bir talebe ihtiyacım vardı. Birisi ön fareyi nasıl destekleyeceğini arıyorsa, bu soru bununla ilgili değil, ajax çağrısı ağ api'mle nasıl konuştuğumla ilgili olabilir - ve cevap basit bir istekte bulunmaktı. preflight –
Sorunun başlığı 405 döndüren OPTIONS hakkında. OPTIONS isteğinden tamamen kaçınmalısınız. Bu bir cevap değil, sadece bunu önler. – defines