gpt4 book ai didi

asp.net-web-api - Ajax 邮政 : 405 Method Not Allowed

转载 作者:行者123 更新时间:2023-12-03 14:47:12 30 4
gpt4 key购买 nike

在我的名为 Payment 的 API Controller 中,我有以下方法:

[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"

我错过了什么?

谢谢你。

更新

这是路由信息(默认)

 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 发送一条空白消息“方法不允许”。

你能用你的路由更新问题吗?

更新

和我想的一样!您正在发送至 http://localhost:65396/api/payment/charge而您需要发送至 http://localhost:65396/api/payment - 假设您的 Controller 名为 PaymentController .

注意路由没有 action .

关于asp.net-web-api - Ajax 邮政 : 405 Method Not Allowed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917085/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com