我如何将JSON格式的FormData文件提交到服务器php

时间:2019-04-04 10:22:39

标签: php jquery ajax

我正在尝试使用formdata()提交表单。我需要将所有数据转换为json格式,但是由于文件附件的原因,我无法在JSON中执行此操作。

源代码:

<script>
    $(document).on('submit', '.career', function(e){e.preventDefault();
        var formData = new FormData();
        formData.append("username", "test");
        formData.append("acct", 23323);
        var data = JSON.stringify(formData);
        $.ajax({
              method: "POST",
              url: ajax.asyncUrl,
              processData: false,
              data: formData
        })
    .done(ajax.callbacks.submitAp);

任何人都可以帮助我解决这个问题。

预先感谢

1 个答案:

答案 0 :(得分:0)

您不能对FormData对象中的二进制数据进行JSON编码。要发送FormData,您需要将其提供给data中设置对象的$.ajax()属性,并将contentTypeprocessData都设置为false。试试这个:

$(document).on('submit', '.career-form', function(e) {
  e.preventDefault();
  var formData = new FormData();
  formData.append("username", "Groucho");
  formData.append("accountnum", 123456);
  // add file data here...
  
  $.ajax({
    method: "POST",
    url: ajax.asyncUrl,
    processData: false,
    contentType: false,
    data: formData,
  }).done(ajax.callbacks.submitCareerApplicationLite);
});