在Firefox和IE10+上使用FormData用Ajax提交表单



我有一个正常的形式,我与ajax提交。接下来是Ajax代码:

$.ajax({
    url: 'ajax/ajax.php',
    type: 'post',
    data: new FormData( this ),
    processData: false,
    contentType: false,
    success: function(response) {
      if(response == 1) {
        // do something
      } else {
        // do something else
      }
   }
});

它在Google Chrome和Safari中工作完美。但是当我在IE10+上测试时(我知道FormData在IE10下不起作用),Firefox不起作用,没有将Post信息提交到php文件。原因是什么呢?

我找到了解决方案。我为输入类型submit按钮使用了一个值,该值将捕获php端的POST。问题是,在Firefox或IE10+上,PostData不发送输入类型提交名称。因此,我创建了一个隐藏输入,使用与输入类型submit相同的名称,现在它工作了。非常奇怪的问题。

THIS doesn ' t SUBMIT WITH FormData

<input type="submit" name="project-form" value="SUBMIT FORM">

THIS DOES SUBMIT

<input type="hidden" name="project-form" value="true">

最新更新