1

我已经阅读了几篇关于此的 StackOverflow 帖子,并多次更正了我的代码,但我无法让我的 webAPI post 方法正常工作。我正在尝试接收一个 post 参数,但它总是为空。

我想要做的是接收一个base64字符串,它表示当用户单击按钮时使用jquery创建的画布:

function MakePhoto(ctrl) {

    html2canvas(ctrl, {
        onrendered: function (canvas) {

            var canvasData = canvas.toDataURL()
            jQuery.ajax({
                url: "../api/webinfo",
                type: "POST",
                data: { imagedata: canvasData },
                success: function () {
                    alert("success");

                },
                error: function () {
                    alert("failure");
                }
            });

        }
    });

}

我的WebInfoController.cs样子是这样的:

 public void Post([FromBody]string imagedata)
 { 
            
 }

imagedata 参数总是NULL

这是我在 webapi 收到的标题:

“方法:POST,

RequestUri: 'http://myhost/RestFulApi/api/webinfo'

内容:System.Net.Http.StreamContent

用户代理:Chrome/27.0.1453.94

内容长度:42226

内容类型:application/x-www-form-urlencoded;字符集=UTF-8}

我希望你能帮助我。

谢谢

4

1 回答 1

3

好的,经过几个小时的研究,我发现了问题。我必须使用以下方法将数据参数传递给 ajax 函数:

"=" + canvasdata, without the parameter name:

jQuery.ajax({
                url: "../api/webinfo",
                type: "POST",
                data: "=" + canvasData,
                success: function (response) {
                    alert(response);

                },
                error: function (response) {
                    alert(response.responseText);
                }
            });
于 2013-06-05T13:18:19.873 回答