使用AJAX上传生成的PDF无法正常工作或计时

时间:2016-07-07 21:35:29

标签: javascript ajax reactjs xmlhttprequest jspdf

我正在使用JSPDF在我的网络应用上动态生成包含用户信息的PDF,该应用程序内置于React.js并托管在Firebase上。

在最后一页上,我想通过电子邮件将此PDF发送到用户指定的地址列表。这听起来很简单,但我遇到了一些问题。首先,我不能仅使用React.js发送电子邮件。做一些研究使我创建了一个上传文件的PHP文件的请求。在PHP文件中,然后我使用标准的PHP邮件程序发送电子邮件。

JSPDF具有用于导出文件的这些函数:

var pdfInBase64 = doc.output('datauristring');
var pdfInRawFormat = doc.output();

以下是我尝试解决此问题的两个方法。两者都使用FormData

var formData = new FormData();
formData.append("data",  pdfInBase64); // also tried pdfInRawFormat

使用XMLHttpRequest:

var xhr = new XMLHttpRequest();
  xhr.open('POST', 'uploader.php', true);
  xhr.onload = function () {
    if (xhr.status === 200) {
      // File(s) uploaded.
      console.log('completed');
    } else {
      alert('An error occurred!');
    }
};
xhr.send(formData);

使用AJAX:

var $ = require ('jquery');
$.ajax({
    type: "POST",
    url: 'uploader.php',
    data: formData,
    dataType: 'json',
    contentType: false,
    processData: false
});

上述两种方法似乎都不适用于我。当我进入我的控制台并查看“网络”选项卡时,我看到已经发出了请求,但是在20秒后超时。我尝试不上传文件,只将data设置为hello或任何其他字符串,并且PHP文件成功接收它。我认为我的文件太大,导致超时。

有人可以指出我正确的方向来解决这个问题吗?我的最终目标是使用JavaScript和PHP发送带有附件的电子邮件。谢谢!

0 个答案:

没有答案