1

我在使用 JSON 参数时遇到了一些问题。以下是部分代码:

<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>

在服务器端,我有以下内容:

    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult decodeQR(string img)
    {

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

        return Json(idDonante, JsonRequestBehavior.AllowGet);
    }

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

编辑:我不得不提一下,就像现在一样,服务器上的 JsonResult 方法永远不会被调用,除非我对 img 属性进行硬编码。

4

1 回答 1

0

URL 的长度是有限制的。请参阅此处:不同浏览器中 URL 的最大长度是多少?

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

于 2013-08-15T20:27:10.197 回答