为输入表单提交数据而不是文件

Submitting data instead of a file for an input form

本文关键字:文件 数据 输入 表单提交      更新时间:2023-09-26

我正在使用jQuery检索图像并将其发布到另一个表单:

handler = function(data, status) {
    ...
    var fd;
    fd = new FormData;
    fd.append("file", data);
    jQuery.ajax({
      url: target_url,
      data: fd,
      processData: false,
      contentType: false,
      type: "POST",
      complete: function(xhr, status) {
        console.log(xhr.status);
        console.log(xhr.statusCode);
      }
    });
};
jQuery.get(imageUrl, null, handler);

表单看起来像这样:

<form>
  <input type="file" name="file" />
  ...
</form>

事情没有按预期进行。我从服务器端得到一个200的响应,它用一些预先填充的值来呈现表单。

我也尝试过设置contentType: "multipart/form-data"

有什么想法为什么不起作用吗?

您发送的字符串将不会被识别为文件。尝试发送blob

fd.append("file", new Blob([data], { "type" : "text/plain" }));

我确信这只适用于文本文件,除非您在原始请求上设置responseType。