jQuery Ajax在Safari中不起作用

时间:2013-09-28 10:03:20

标签: javascript jquery ajax safari

我有功能:

$(function () {
                    $('form').on('submit', function (e) {
                        $.ajax({
                            type: 'POST',
                            url: 'conf/send.php',
                            data: $('form').serialize(),
                            success: function () {
                                var form = document.getElementById("Form");
                                form.submit();
                            }
                        });
                        e.preventDefault();
                    });
               });

在FF,Chrome,Opera,IE上运行良好。在Safari中无法正常工作。 试图补充:

async: false,

$.ajaxSetup({
  type: 'POST',
  headers: { "cache-control": "no-cache" }
});

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
   options.data = jQuery.param($.extend(originalOptions.data||{}, { 
     timeStamp: new Date().getTime()
   }));
});

这无济于事? 提前谢谢

2 个答案:

答案 0 :(得分:1)

我认为你在form.submit()

success()陷入困境

试试这个

$(function () {
    $('form').on('submit', function (e) {
        $.ajax({
            type: 'POST',
            url: 'conf/send.php',
            data: $('form').serialize(),
        }).done(function(response){ 
            alert(response);
            return true; 
        });
        e.preventDefault();
    });
});

此处示例http://fiddle.jshell.net/UKPq5/

答案 1 :(得分:1)

您确定此代码:

success: function () {
    var form = document.getElementById("Form");
    form.submit();
}

实际上你想要的是什么?你告诉JavaScript如果你的表单通过AJAX发送,它应该发送id为#Form的表单。也许你应该试试这个:

$(function() {
    var form = $('form');

    form.on('submit', function(e) {
        e.preventDefault();

        $.ajax({
            type: 'POST',
            url: 'conf/send.php',
            data: form.serialize(),
            success: function (response) {
                console.log(response);
                //var form = document.getElementById("Form");
                //form.submit();
            }
        });
    });
});