Ajax发送空的POST数据,但仅限于IE和Firefox

时间:2014-08-27 20:47:09

标签: javascript php jquery html ajax

我有一个奇怪的问题(我搜索过但没有成功)。我正在使用Ajax将表单发布到PHP脚本。这适用于Chrome,Opera和Safari。但是,在IE和Firefox中,表单都会正确发送到脚本,但缺少表单数据。当POST数据丢失时,我确保脚本返回错误。我试图在几个小时内搜索这个问题,但没有任何运气。你是我最后的希望。

这是AJAX代码(带有一些Javascript):

  <script type="text/javascript">
  $(document).ready(function() {

  $("#latestNewsForm").on('submit', function(event) {
    event.preventDefault();

    $.ajax({
        url         : "http://devserver/site/php/getLatestArticles.php",
        type        : "POST",
        data        : new FormData(this),
        contentType : false,
        cache       : false,
        processData : false
    }).done(function (data) {
        $("#formResponse").html(data);
    });

   });
  });
  </script>

以下是表格:

<form id="latestNewsForm"  method="post">
    <input type="submit" name="currentPage" id="firstPage" value="1">
</form>

提前感谢!

2 个答案:

答案 0 :(得分:0)

Ohgodwhy的评论可能是正确的。

将您的数据放在ajax调用之外的变量中。 this可能指的是与您在不同浏览器中预期的不同。

试试这个:

$("#latestNewsForm").on('submit', function(event) {
    event.preventDefault();

    var data = new FormData(this);

    $.ajax({
        url         : "http://devserver/site/php/getLatestArticles.php",
        type        : "POST",
        data        : data,
        contentType : false,
        cache       : false,
        processData : false
    }).done(function (data) {
        $("#formResponse").html(data);
    });

   });

另一种可能性可能与您的提交按钮有关:Submit rollover button not working in FF and IE

答案 1 :(得分:-1)

试试这个:

$.ajax({
    type: "POST",
    url: "/fetchdata",
    data:JSON.stringify(sid),
    success: function(result) {
        alert('ok');
    },
    error: function(result) {
        alert('error');
    }
});