将接收到的数据从ajax发送到另一个ajax作为文件

时间:2019-10-08 08:19:18

标签: jquery ajax

我有一个返回txt文件的表单,我想通过AJAX将收到的数据发布到另一表单中

因此,工作流程为: AJAX调用->成功->接收到txt文件->通过ajax将返回的数据作为文件发送到另一表格

我尝试使用此代码

$.ajax({
    url: "form1",
    method: 'POST',
    data: { field: field}
}).done(function(data) {
  $.ajax({
      url: "form2",
      method: "POST",
      data: { 
              file: data
      }
  });
});

代码发送数据,但“ form2”上的表单未收到有效的文件对象。

如何将接收到的“数据”转换为有效的文件对象?

1 个答案:

答案 0 :(得分:0)

由于lordvlad30,我使用FormData()函数以第二种形式发送字段,但是将这些属性添加到了第二个ajax调用中: dataType:'json' processData:否 contentType:false

对于第一个电话,我必须添加 xhrFields:{     responseType:“ blob” }

所以最后的示例代码是:

$.ajax({
    url: "form1",
    method: 'POST',
    xhrFields: {
        responseType: 'blob'
    },
    data: { field: field}
    success: function(blob){
        var formData = new FormData();
        formData.append('textFile', blob, fileName + '.txt');
        $.ajax({
            url: form2,
            method: "POST",
            dataType: 'json',
            processData: false,
            contentType: false,
            data: formData
        });
    }
});