【问题标题】:Null parameters doing HTTP POST from Ajax to Web API从 Ajax 到 Web API 执行 HTTP POST 的空参数
【发布时间】:2013-05-31 01:05:39
【问题描述】:

我已经阅读了几篇关于此的 StackOverflow 帖子,并多次更正了我的代码 但我无法让我的 webAPI 发布方法正常工作。我正在尝试接收 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}

希望你能帮助我。

谢谢

【问题讨论】:

  • canvas.toDataURL() 返回什么,你确定它不为空吗?在您的 ajax 请求之前插入一个 console.log(canvasData),浏览器控制台中记录了什么?
  • 我认为您可能需要将dataType: "json" 添加到您的ajax 调用中。
  • 我添加了 dataType: "json" 但它仍然无法正常工作:(。@soderslatt 是的,我正在使用 chrome 进行调试,它不为空。我可以看到 base64 字符串

标签: c# jquery ajax post asp.net-web-api


【解决方案1】:

好的,经过几个小时的研究,我发现了这个问题。我必须使用以下方法将数据参数传递给 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);
                }
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多