我从客户端调用api的这个动作。客户端代码也见下文。
API操作:
public class StudentTestController : ApiController
{
[HttpPost]
public HttpResponseMessage GetLessonInfo(int request)
{
HttpResponseMessage result = null;
result = Request.CreateResponse(HttpStatusCode.OK,StudentTest.GetLessonInfo(request));
return result;
}
}
JavaScript客户端脚本:
function SendRequest() {
var url = "http://localhost:1938/api/StudentTest/GetLessonInfo";
var data1 = "request=293";
$.ajax({
type: 'POST',
url: url,
data: data1,
contentType: 'application/json; charset=utf-8',
dataType: 'jsonp',
success: function (data) {
$('#txtResponce').val(JSON.stringify(data.Data));
},
error: function (xhr, status, error) {
var errorText = xhr.status + "\r\n" + status + "\r\n" + error;
$('#txtResponce').val(errorText);
}
});
}
当我尝试使用上面的代码段调用Action时,它不会调用控制器操作。怎么解决这个问题?
答案 0 :(得分:2)
帕。 你有没有试过这个:
var url = "/api/StudentTest/GetLessonInfo";
var data1 = "293";
也许"请求= 293"可以被认为是一个字符串而不是" int"期望作为参数。 由于int参数不可为空,可能它会给你一个错误的请求响应。
与Fiddler核实发送给服务器的内容。