微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-web-api – Ajax Post:405方法不允许

在我的API控制器中称为付款,我有以下方法
[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;
}

在我的HTML页面中,我有

$.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);
        }
    });

每当我开火POST,我得到

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

我失踪了什么

谢谢.

UPDATE

以下是路由信息(认)

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 }
            );

解决方法

很可能您的路由未配置为要调用的操作.因此,请求无处不在,ASP.NET Web API发送一个空白消息“不允许的方法”.

你可以用你的路由更新问题吗?

UPDATE

和我想的一样!当您需要发送到http:// localhost:65396 / api / payment – 您的控制器称为PaymentController时,您将发送到http:// localhost:65396 / api / payment / charge.

请注意,路由没有动作.

原文地址:https://www.jb51.cc/aspnet/250975.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐