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

Jquery 将从ajax接收到的数据作为文件发送到另一个ajax,jquery,ajax,Jquery,Ajax,我有一个返回txt文件的表单,我想通过AJAX将收到的数据发布到另一个表单 因此,工作流程是: AJAX调用-->成功-->收到一个txt文件-->通过AJAX将返回的数据作为文件发送到另一个表单 我用这个密码试过了 $.ajax({ url: "form1", method: 'POST', data: { field: field} }).done(function(data) { $.ajax({ url: "form2", method

我有一个返回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”上的表单没有收到有效的文件对象


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

多亏了lordvlad30,我使用FormData()函数以第二种形式发送字段,但将这些属性添加到第二个ajax调用中: 数据类型:“json” processData:false contentType:false

对于第一个电话,我必须补充 xhrFields:{ 响应类型:“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
        });
    }
});

查看一下
FormData
(),如果您发送的是一个文件,而不仅仅是一个长文本字符串,那么您应该使用:
multipart/FormData
作为
contentType
(与FormData结合使用)如果我没有错,数据是一个保留术语,可以使用“response”代替