我的画布表示为base64字符串。我想将此字符串传递给服务器,以便服务器可以使用数据制作PDF文档。
当我尝试将数据传递到服务器时收到414错误:'无法加载资源:服务器响应状态为414(Request-URI太长)。
我已经成功下载了客户端图像。我实际上检索和下载图像没有问题,只是在整理它所代表的文件类型时。
$('#ExportPlanView').click(function (e) {
//planViewStage.toDataURL(function (e) { window.location = e.replace("image/png", "image/octet-stream")});
planViewStage.toDataURL(function (dataURL) {
var output = dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
$.ajax({
url: '../PlanView/ExportAsPDF',
data: { DataURL: output },
datatype: 'json',
success: function (stream) { window.location = stream; }
});
});
});
将输出分解为较小的块并将每个块发送到服务器,让服务器重建这些块,制作pdf,然后将该文件流发送回客户端以触发下载是正确的解决方案吗?
供参考 - 数据网址为~105k字符。
答案 0 :(得分:2)
需要传递大量数据时使用POST请求。 $.ajax
默认为GET,因此您需要手动定义类型。
要使用jQuery发送POST请求,您可以使用以下内容:
$.ajax({
url: 'blah.php',
type: 'POST',
data: { DataURL: output },
datatype: 'json',
success: function() { ... }
})