如何解决jquery.min.js:9600 XHR 加载失败:POST
我想从 jspdf 上传 pdf 到我的服务器。 我使用 Ajax。
我通过表单中的函数打开 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,});
upload.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发送之前验证您的数据,因为数据类型应该是:
- PlainObject 或 String 或 Array & success 方法必须至少有一个参数
- 类型:函数(任何数据,字符串 textStatus,jqXHR jqXHR)
祝你好运。
,答案是我在提交表单后刷新了页面并将 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 上传到我的服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。