Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 执行从Ajax到Web API的HTTP POST的空参数_C#_Jquery_Ajax_Post_Asp.net Web Api - Fatal编程技术网

C# 执行从Ajax到Web API的HTTP POST的空参数

C# 执行从Ajax到Web API的HTTP POST的空参数,c#,jquery,ajax,post,asp.net-web-api,C#,Jquery,Ajax,Post,Asp.net Web Api,我已经阅读了几篇关于这个的StackOverflow文章,并多次更正了我的代码 但是我不能让我的webAPI post方法工作。我正在尝试接收post参数 但它总是空的 我试图做的是接收一个base64字符串,它表示一个 用户单击按钮时使用jquery创建: function MakePhoto(ctrl) { html2canvas(ctrl, { onrendered: function (canvas) { var canvasData

我已经阅读了几篇关于这个的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上收到的标题:

“方法:邮寄

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

内容:System.Net.Http.StreamContent

用户代理:Chrome/27.0.1453.94

内容长度:42226

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

我希望你能帮助我


谢谢

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

“=”+canvasdata,不带参数名:

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

                },
                error: function (response) {
                    alert(response.responseText);
                }
            });

canvas.toDataURL()返回什么,您确定它不是空的吗?在ajax请求之前插入一个console.log(canvasData),浏览器控制台中记录了什么?我想您可能需要在ajax调用中添加
数据类型:“json”
。我添加了数据类型:“json”,但它仍然不起作用:(.@soderslatt是的,我正在用chrome调试,它不是空的。我可以看到base64字符串