首页 > 解决方案 > 如何在一个 ajax 请求中添加文件和 html 类型数据

问题描述

我不知道如何.html()在通过 ajax 发送数据时在输入字段的后面指定

我想要$(Content)一个 html 格式的数据,但使用FromData()它似乎是不可能的。

 
$("form#data").submit(function(e) {
  e.preventDefault();
  var formData = new FormData(this);
  var Content = document.getElementById("editor").innerHTML;
  $.ajax({
    url: 'php/videoUpload.php',
    type: 'POST',
    data: formData,
    Content: $(Content).html(), //Not working (Can't see the Content in my ajax request in console window)
    success: function(data) {},
    cache: false,
    contentType: false,
    processData: false
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="data" method="post" enctype="multipart/form-data">
  <div class="form-group">
    <input type="text" class="form-control" name="title">
  </div>
  <div id="toolbar"></div>
  <div id="editor"></div>
  <input type="file" name="file" id="fileToUpload">
  <button type="submit" class="SubmitButton">Post</button>
</form>

标签: javascriptjquery

解决方案


formData 是实际发送到服务器的内容。jQuery 实现了 content 属性,但不是您期望的方式。如果要将编辑器 div 的 innerHTML 添加到请求正文中,则需要将其添加到 formData 对象中。一个简单的方法是添加

formData.editorContent = document.getElementById("editor").innerHTML;

在您对新 FormData 的调用下


推荐阅读