【发布时间】:2018-05-01 04:28:48
【问题描述】:
我知道这已经被问了一千次了。但我找不到我的错误。我通过在没有参数的情况下对其进行测试来缩小范围,该参数有效,然后尝试了各种方法。喜欢,获取或发布,[FromBody] 与否。等等。 也许我应该展示我的代码,或者我应该在今天停下来庆祝一下,快到周末了。
[HttpGet] // also tried post instead of get
public HttpResponseMessage Get(int id)
{
return Request.CreateResponse(HttpStatusCode.OK); // breakpoint set, not hit
}
我的 Js 代码:
var myObj = {};
myObj["id"] = parseInt(id);
var json = JSON.stringify(myObj);
alert(json); // display: { id = 2134 }, seems fine to me
$.ajax({
type: "GET", // also tried post
dataType: "json",
url: '/api/CheckPossible/Get',
data: json,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('success');
},
error: function () {
alert('failure');
}
});
我收到了很多错误的请求 (400),我确实让它在没有参数的情况下工作。所以这不是路由问题。
编辑
$.ajax({
type: "GET",
dataType: "json",
url: '/api/CheckPossible/Get/?id=1234', // also tried Get?id=1234
contentType: "application/json; charset=utf-8",
success: function () {
alert('success');
},
error: function () {
alert('failure');
}
});
没有用。也许我也错过了其他东西
【问题讨论】:
-
对于获取请求,您需要将参数作为 url 的一部分传递,您不需要以不同的方式发送。将 JavaScript 上的 url 更改为
/api/CheckPossible/Get/123应该可以。替换123ar3 从 parseInt(id) 获得的任何动态值
标签: c# jquery ajax asp.net-web-api