我正在使用jQuery创建一个对象标记,以显示动态生成的PDF文件。为了创建它,我使用“data”属性在URL中包含GET参数,因此服务器可以识别需要哪种文件。
$("#div").html("<object data='url?parameterX=1¶meterY=0' type='application/pdf'></object>");
在同一个项目中,我现在需要生成一个带有动态生成图片的pdf文件。我能够使用html2canvas库并通过POST发送图像的base64值,但由于我需要在object标签中显示该文件,我无法将base64数据作为GET发送,因此浏览器显示消息“URL太长”。
是否可以使用复杂参数创建Object标签?我不知道是否可以通过POST发送信息。
更新
目前,解决这个问题的唯一方法是James Thorpe的建议。使用jquery ajax,我将base64发送到服务器并将值存储在会话变量中。 像这样:
$.ajax({
url: "url",
dataType: "text",
type: "POST",
data: { image: canvas.toDataURL("image/png").replace("data:image/png;base64,", "") }
}).done(function (data) {
$("#div").html("<object data='url?parameterX=1' type='application/pdf'></object>");
}
然而,我不知道这是否是最好的解决方案。我要打开这个问题,如果我找到了有用的东西,我会尝试提供任何更新。