如何在 ajax 调用后停止刷新页面

How to stop refreshing page after ajax call?

本文关键字:刷新 ajax 调用      更新时间:2023-09-26

我无法在ajax调用后停止刷新页面。我尝试过通过放置 e.preventDefault();并返回假;以及,但我的页面再次令人耳目一新。

我不知道代码有什么问题。请帮助我在 ajax 调用后停止刷新页面。解决这个问题对我有很大帮助。提前谢谢。

这是我的代码:

$(document).ready(function() {
    $('#loginForm').on('click', function(e) {
        e.preventDefault();
        var formData = {
            'uname'  : $('#uname').val(),
            'pwd'    :      $('#pwd').val()
        };
        $.ajax({
            type        : "POST",
            url         : "getresults.php", 
            data        : formData
        }).done(function(data) {
              alert(data+"This is working");
        }).fail(function(data) {
              alert("This is not working");
        });
    });
});

type="button"属性添加到按钮解决了我的问题。否则,它被解释为提交操作。

id #loginForm指向表单吗?如果是,您需要收听提交事件而不是单击。如果确实需要监听点击事件,则必须将事件绑定到提交按钮或任何触发form.submit()

尝试这样的事情:

$('#loginForm').on('submit', function(e) {
    e.preventDefault();
    e.stopPropagation(); // only neccessary if something above is listening to the (default-)event too
    [YOUR CODE GOES HERE]
});

这应该可以为您解决问题。

今晚早些时候,这发生在我身上,我找到了解决这个问题的方式 - 这可能是一个很长的机会,但我意识到我的问题是什么,并认为这可能有助于将来处理这个问题的人。

您是否使用本地live-server或其他形式的脚本,以便在新文件出现在同一个工作文件夹中时智能刷新本地代码?如果是这样 - 页面刷新不是因为你的代码,而是因为你调用的任何ajax都操纵了你正在使用的文件夹,导致页面"更新"。

我认为在单击功能后添加返回 false 会阻止页面刷新

当您打开实时服务器扩展或类似刷新 html 页面时,可能会发生这种情况。