1

これに関する StackOverflow の投稿をいくつか読み、コードを何度か修正しましたが、webAPI post メソッドを機能させることができません。post パラメータを取得しようとしていますが、常に null になります。

私がやろうとしているのは、ユーザーがボタンをクリックしたときにjqueryで作成しているキャンバスを表すbase64文字列を受け取ることです:

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

OK、数時間調査した後、問題を発見しました。次を使用して、dataパラメーターを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 に答える