我在使用 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 属性进行硬编码。