繁体   English   中英

jquery.min.js:9600 XHR 加载失败:POST

[英]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 发送数据之前验证您的数据,因为数据类型应该是:

  1. PlainObject 或 String 或 Array & 成功方法必须至少有一个参数
  2. 类型:函数(任何数据,字符串 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 上传到我的服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM