1

クライアントから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);
            }
        });
    }

上記のスニペットでアクションを呼び出そうとすると、コントローラーアクションは呼び出されません。これを解決するには?

4

1 に答える 1

2

パバン。代わりにこれを試しましたか:

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

たぶん、「request = 293」は文字列と見なすことができ、パラメータとして期待される「int」ではありません。また、intパラメータはnull許容ではないため、BadRequest応答が返される可能性があります。

サーバーに何が送信されているかをFiddlerに確認してください。

于 2012-11-25T22:19:01.837 に答える