ajax - jQuery .ajax 'success' 函数从未运行

标签 ajax jquery

我第一次尝试使用 jQuery,而我使用 .ajax 的 POST 函数让我感到悲伤。 POST成功;我的 PHP 页面正确运行 MySQL 查询并返回新创建的用户 ID。唯一的问题是,不是运行“成功”函数;它只是加载我调用的 PHP 页面,该页面只是回显用户 ID。

这是 jQuery 函数:

function register() {
$.ajax({
    type: "POST",
    url: 'sendRegistration.php',
    data: dataString,
    datatype: 'html',
    success: function(response){alert(response);},
    complete: function(response,textStatus){console.log(textStatus);},
    error: function(response){alert(response);}
});
}

...以及 PHP 返回的内容:

    // Create a new send & recieve object to store and retrieve the data
    $sender = new sendRecieve();
    $custId = $sender->submitUser($userVars);
    if ($custId != 0) {
        echo $custId;
    } else {
        echo "Database connection problems...";
    }

创建数据库对象,然后加载“url”参数中的 php 页面,显示 $sender->submitUser() 函数返回的 id。

理想情况下,我希望它永远不会显示“sendRegistration.php”页面,而是运行另一个 js 函数。

我确信有一个简单的解决方案,但经过几个小时的搜索后我还没有找到它。

感谢您的帮助。

最佳答案

您可能正在通过表单处理此问题。如果您不阻止浏览器的默认表单提交过程,页面将重定向到表单的 action url。如果表单中没有操作,当前页面将重新加载,这很可能是您的情况发生的情况。

要防止这种情况,请使用以下方法之一

$('form').submit(function(event){
    /* this method before AJAX code*/
    event.preventDefault()    

        /* OR*/

      /* this method after all other code in handler*/
      return false;
})

如果您从表单提交按钮上的点击处理程序发送 AJAX,则适用相同的方法

关于ajax - jQuery .ajax 'success' 函数从未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545265/

相关文章:

jquery - 如何验证使用 PrettyCheckable jQuery 插件的表单?

javascript - 在 Javascript 中合并对象以实现无限加载 Ajax 插件

c# - WCF 服务调用中的 "Thread was being aborted"

c# - 如何将javascript字典发送到MVC4中的 Controller 方法

PHP MySQL 动态选择与 Ajax 调用

javascript - Jquery post 的痛苦 jquery 错误

javascript - PHP/JS/AJAX/HTML : Dynamically creating a webpages

javascript - 动态应用 Jqgrid 所需的属性

javascript - 从绝对位置 div 算起的图像高度

javascript - jQuery:deferred.always() 和 deferred.then() 之间有什么区别?