加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:52:09 所属栏目:asp.Net 来源:网络整理
导读:在我的API控制器中称为付款,我有以下方法: [HttpPost]public HttpResponseMessage Charge(Payment payment){ var processedPayment = _paymentProcessor.Charge(payment); var response = Request.CreateResponse(processedPayment.Status != "PAID" ? Http
在我的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.

请注意,路由没有动作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读