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

时间:2013-07-14 19:56:32

标签: javascript jquery

我正在使用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"

为什么这不起作用?

1 个答案:

答案 0 :(得分:2)

您正在发送一个不会被识别为文件的字符串。 尝试发送blob

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

我很确定这只适用于文本文件,除非您在原始请求中设置了responseType。