如何使用javascript作为客户端调用MVC Api控制器HttpResponseMessage发布操作?

时间:2012-11-07 03:48:31

标签: javascript ajax

我从客户端调用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时,它不会调用控制器操作。怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

帕。 你有没有试过这个:

var url = "/api/StudentTest/GetLessonInfo";
var data1 = "293";

也许"请求= 293"可以被认为是一个字符串而不是" int"期望作为参数。 由于int参数不可为空,可能它会给你一个错误的请求响应。

与Fiddler核实发送给服务器的内容。