天天看点

Ajax post HTML 405,asp.net web api - Ajax Post: 405 Method Not Allowed - Stack Overflow

Within my API Controller called Payment, I have the following method:

[HttpPost]

public HttpResponseMessage Charge(Payment payment)

{

var processedPayment = _paymentProcessor.Charge(payment);

var response = Request.CreateResponse(processedPayment.Status != "PAID" ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK, processedPayment);

return response;

}

In my HTML page I have:

$.ajax({

type: "POST",

contentType: "application/json; charset=utf-8",

url: "http://localhost:65396/api/payment/charge",

data: $('#addPayment').serialize(),

dataType: "json",

success: function (data) {

alert(data);

}

});

Whenever I fire the POST, I get

"NetworkError: 405 Method Not Allowed - http://localhost:65396/api/payment/charge"

What am I missing?

Thank you.

UPDATE

Here's the routing information (default)

routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);