我有一些带有JSON参数的trobule。以下是部分代码:
<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.to DataURL()中获取字符串的变量上,但我不确定。
EDIT:我必须提到,现在,服务器上的JsonResult方法从未被调用,除非我对img属性进行硬编码。
URL的长度是有限制的。请参阅此处:在不同的浏览器中,URL的最大长度是多少?
您应该将编码的图像数据张贴到您的服务器上。