首页 > 解决方案 > Ajax POST 在 safari 中有效,但在其他浏览器中无效

问题描述

我有一个表单,它通过 ajax 脚本向一些 PHP 代码发布表单。奇怪的是,一切都在 Safari 中运行,但是一旦我在 Firefox 或 Chrome 中尝试它,ajax 调用就会将所有内容都视为错误,尽管控制台没有显示任何错误。

    $('#newClearance').on("submit", function(e) {
    e.preventDefault();

    var formData = new FormData(this);

    $.ajax({
        method: 'POST',
        url: 'modules/avas/library/avas_functions.php?action=newClearance',
        data: formData,
        contentType: false,
        cache: false,
        processData: false,
        success: function (data, status) {
            $('#formModal').modal('hide');
            $.notify(data, {type: 'success'});
            $.get(window.location)
                .done(function (r) {
                    var newDom = $(r);
                    $('#clearanceList').replaceWith($('#clearanceList', newDom));
                });
        },
        error: function (data,status,error) {
            $.notify(error, {type: 'danger'});
        }
    });
});

如果我将 html 表单直接发布到 PHP 脚本,一切顺利,PHP 脚本返回成功。它适用于所有浏览器。

我真的找不到线索,尤其是相同的脚本,除了另一种形式,在所有浏览器中都可以正常工作。任何人的线索?

附加信息 需要注意的一件好事可能是表单和 jquery 被放置在一个模式中,正如您可能会从代码中注意到的那样。

标签: javascriptajaxgoogle-chromefirefoxsafari

解决方案


部分解决方案似乎是表单的“提交”按钮,这是 PHP 脚本运行所必需的。我已经在 PHP 脚本中删除了这个条件,但仍然想知道为什么 firefox/chrome 不 POST 提交按钮而 safari 会。


推荐阅读