üzerinde GET gibi işlenmiş bir WebApi denetleyicisi oluşturuyor ve kayıt için yeni bir kullanıcı göndermek için bir HttpPost isteği kullanmaya çalışıyorum. Bu, localhost'umda gayet iyi çalışıyor, ancak Azure'a yayınladığımda, iletiyle ilgili bir 405 yöntemine izin verilmeyen bir hata alıyorum: "İstenen kaynak http yöntemini 'GET'" desteklemiyor. HTTP POST yöntemi WebApi
Ben eylemleri kontrol etmek için postacı kullanın ve bu yüzden aşağıdaki gibidir isteği, görmek için kod oluşturmak kullandı:POST /api/account/register/student HTTP/1.1
Host: www.l3cture.com
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 27c1b2ab-96ad-4a99-b271-4030402768e7
yüzden istek bir POST olduğunu açıkça görebilirsiniz. Ve aşağıdaki onun nitelikleri ile kontrolör eylem kodu (hayır modeller yayınlanır böylece Şu anda bunu basitleştirdik ve aynı davranış oluşur)
[HttpPost]
[Route("register/student")]
[AllowAnonymous]
public async Task<IHttpActionResult> PostStudent(/*RegisterStudent model*/)
{
//Implementation of register
return Ok();
}
Ben niteliklerin ad kontrol ve kaydetmemiz System.Web.Http, bu yüzden MVC ad alanı ile karıştırılmıyor.
İlginç olan, HttpGet yöntemini ve postacıyı kullanarak POST olarak değiştirdiğimde, 200 durum aldığımdır. Neredeyse HttpPost isteklerinin tümü benim denetleyicim tarafından HttpGet gibi ele alınıyor.
HttpPut ve HttpDelete'yi başka yerlerde kullandım ve hepsi iyi çalışıyor.
Bu sorunun nasıl çözüleceğinden emin değilim ve herhangi bir fikri olup olmadığını merak ediyordum? Lütfen açıklama için daha fazla kod göndermem gerekiyorsa bildirin. peşin
Teşekkür
http yerine https kullandığımda işe yarar görünüyor. Bu kapatılabilir –
Modelinizi Gönderi için Gönderiyor musunuz? Yöntem parametrenizde [FromBody] özniteliğini kaçırdığınızı düşünün. –
[FromBody] 'yi denedim ve işe yaramadı. Her ne kadar https belirterek denedim ve işe yarıyor gibi görünüyor. Sadece bir süredir aptal oldum –