Multipart Form使用AJAX提交到Ruby方法

时间:2014-07-07 20:16:44

标签: jquery ruby-on-rails ajax

在我的RoR应用程序中,我有一个带有按钮的dataTable,该按钮触发包含多部分表单的Bootstrap模式。我很难通过AJAX调用将上传的文件(在本例中为图像)传递给我的RoR方法。我尝试过使用formData()方法,但是我的AJAX调用甚至没有使用我以前没有合并formData()的方法。我可以通过将表单合并到实际视图中来完成我的任务,但我需要将此表单作为模态的一部分。任何帮助是极大的赞赏。我还有一个问题是无法验证CSRF令牌的真实性,但这可能是我必须解决的另一个问题。

HTML

<form id="upload_form" name="upload_form" action="/admin/jobs/job_screenshot"   
method="post" multipart="true">
  <input id="j_id" type="hidden" value="538f7b5a9bb8f9a5ba000045">
  <div class="row-fluid">
    <ul>
      <li>Select Screenshot to Upload</li>
      <li>
        <input accept="image/png,image/gif,image/jpeg" type="file">
      </li>
      <li>
        <input id="ss_submit" class="btn button btn-success" type="submit" value="Upload Screenshot">
      </li>
    </ul>
  </div>
</form>

的jQuery

$(document).on("submit", "#upload_form", function(e) {
  var formData;
  formData = new FormData($(this)[1]);
  $.ajax({
    url: "/admin/jobs/job_screenshot",
    type: "POST",
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    beforeSend: function(xhr) {
      xhr.setRequestHeader("X-CSRF-Token", $("meta[name=\"csrf-token\"]").attr("content"));
    }
  });
});

0 个答案:

没有答案