[英]jquery.min.js:9600 XHR failed loading: POST
我想将 pdf 从 jspdf 上传到我的服务器。 我为此使用 Ajax。
我以我的形式通过 function 打开 Javascript。
onsubmit="pdferzeugen();"
在 ajax 代码上方,我通过“jspdf”创建 pdf 并将其保存到 datauri(base64)。
Javascript:
var datauri = pdf.output('datauri');
var data = new FormData();
data.append("pdf_data", datauri);
$.ajax({
url: "./uploads/upload.php",
type: "POST",
processData: false,
contentType: false,
data: data,
});
上传.php:
if(!empty($_POST['pdf_data'])){
$data = $_POST['pdf_data'];
$fname = "test.pdf"; // name the file
$file = fopen("./uploads/" .$fname, 'w'); // open the file path
fwrite($file, $data); //save data
fclose($file);
}
但这对我不起作用。 Chrome总是说:
jquery.min.js:9600 XHR 加载失败:POST“http://app-her-visitor/begehung/uploads/upload.php”。
我在整个谷歌上搜索了这个错误,但没有成功。 我希望你能帮帮我:-)
感谢帮助
问候
问题在于您发送的数据之间。 在通过 ajax 发送数据之前验证您的数据,因为数据类型应该是:
祝你好运。
答案是我在提交表单后刷新了页面并将 base64 数据发送到我的服务器。
我需要阻止它刷新页面,这样它才能成功发送数据。
HTML
onsubmit="pdferzeugen();return false"
Javascript
var datauri = pdf.output('dataurl');
$.ajax({
url: "./uploads/upload.php",
type: "POST",
data: { pdf: datauri },
success: function(data) {},
});
PHP
$pdf = str_replace('data:application/pdf;base64,', '', $_POST['pdf']);
$pdf_decoded = base64_decode ($pdf);
$pdf = fopen ('Begehungsprotokoll.pdf','w');
fwrite ($pdf,$pdf_decoded);
fclose ($pdf);
onsubmit 中的return false
将阻止它重新加载页面,现在 pdf 上传到我的服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.