Javascript JSON字符串参数不工作

Javascript JSON字符串参数不工作,javascript,asp.net-mvc-4,parameters,html5-canvas,json.net,Javascript,Asp.net Mvc 4,Parameters,Html5 Canvas,Json.net,我有一些带有JSON参数的Troble。以下是部分代码: <script type="text/javascript"> $("#deco").click(function () { var cap = document.getElementById('canvasVideo').toDataURL(); var canvas = document.getElementById('captImage'); var contex

我有一些带有JSON参数的Troble。以下是部分代码:

<script type="text/javascript">
    $("#deco").click(function () {
        var cap = document.getElementById('canvasVideo').toDataURL();

        var canvas = document.getElementById('captImage');
        var context = canvas.getContext('2d');
        var imageObj = new Image();

        imageObj.onload = function () {
            context.drawImage(imageObj, 0, 0);
        };
        imageObj.src = cap;

       //var cap = 'hardcoding' ; if i hardcode the text, and pass this as a parameter, it works.

        $.getJSON('/Home/decodeQR', { img : cap  },
            function (idDonante) {
                document.getElementById("result").value = idDonante;
            });
        });

</script>
正如代码中提到的,如果我硬编码参数,它就会工作。我认为问题出在从canvas.toDataURL()获取字符串的变量中,但我不确定


编辑:我必须提到,现在,服务器上的JsonResult方法永远不会被调用,除非我硬编码img属性。

URL的长度是有限制的。请看这里:


您应该将编码的图像数据发布到您的服务器。

您是否尝试了浏览器调试器以查看从
document.getElementById('canvasVideo').toDataURL()返回的值。
?我使用firebug进行了尝试,该值正常,它将生成编码为base64字符串的图像。我不知道这是怎么回事/嗯,当值到达
img
变量中的服务器时,它是什么样子的?它可能被编码得很奇怪。我认为格式并不重要,因为我需要它是一个字符串。(我在服务器端对字符串进行后期处理)。奇怪的是,“cap”变量的赋值是正确的。为了测试我是否创建了另一个画布,并将“cap”的值指定给src属性,图像被复制到ok:/刚刚看到你的编辑。您是否知道请求是否被触发,如果是,它是否正在到达服务器?服务器可能在调用您的操作方法之前遇到错误。
    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult decodeQR(string img)
    {

        var idDonante = getIDQR(Conversion.Base64StringToBitmap(img));

        return Json(idDonante, JsonRequestBehavior.AllowGet);
    }