为什么POST回调函数不起作用

Jas*_*Cav 2 jquery post

我正在尝试在 jQuery $.post 函数中执行以下淡入/淡出操作

$.post('Scenario/SaveScenario', function (data) {
    $('<div class="save-alert">The current scenario has been saved.</div>')
    .insertAfter($('.buttons'))
    .fadeIn('slow')
    .animate({ opacity: 1.0 }, 2000)
    .fadeOut('slow', function () {
        $(this).remove();
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用并且(显然)没有任何反应。(我在 Firebug 中的函数内放置了一个断点,但从未到达。)当场景被放入我的数据库时,该帖子正在成功发生。我不相信这是问题所在。

我通过将它添加为提交按钮上的点击事件来测试它并且确实有效。

$(function () {
    $('#SaveScenario').click(function () {
        $('<div class="save-alert">The current scenario has been saved.</div>')
        .insertAfter($('.buttons'))
        .fadeIn('slow')
        .animate({ opacity: 1.0 }, 2000)
        .fadeOut('slow', function () {
            $(this).remove();
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何理论?

Viv*_*ath 5

来自 jQuery 文档:

如果使用 jQuery.post() 的请求返回错误代码,它将静默失败,除非脚本也调用了全局 .ajaxError() 方法。

因此,该帖子可能会正常访问服务器并通过,但是当帖子返回 jQuery 时可能会出现某种错误(可能是意外的数据形式),或者可能在返回途中出现一般类型的错误(不好的响应代码)?尝试发送请求jQuery.ajax并为其提供error处理程序以查看是否发生了某种错误。例如,如果您使用ajaxSetup并设置了dataTypetojson并且没有从服务器返回有效的 JSON,jQuery 将因解析错误而死亡。

当你简单地点击时你会得到什么http://your.site.com/Scenario/SaveScenario

  • +1 因为我没有返回 json,所以从 post 调用中删除了 'json' 后我的问题解决了。节省了我很多时间:) (2认同)