Ajax 成功事件不起作用

2022-08-30 01:02:58

我有一份注册表,正在用它来提交它。$.ajax

这是我的AJAX请求:

$(document).ready(function() {
    $("form#regist").submit(function() {
        var str = $("#regist").serialize();
        $.ajax({
            type: 'POST',
            url: 'submit1.php',
            data: $("#regist").serialize(),
            dataType: 'json',
            success: function() {
                $("#loading").append("<h2>you are here</h2>");
            }        
        });
        return false;        
    });
});

在我的 submit1.php 文件中,我检查数据库中是否存在电子邮件地址用户名字段。我希望显示一条错误消息,如果这些值存在没有页面刷新

如何将其添加到 AJAX 请求的成功回调中?


答案 1

结果可能不是JSON格式,因此当jQuery尝试解析它时,它会失败。您可以使用回调函数捕获错误。error:

无论如何,您似乎不需要该函数中的JSON,因此您也可以取出该行。dataType: 'json'


答案 2

虽然问题已经解决,但我添加这个,希望它能帮助其他人。

我犯了一个错误,试图直接使用这样的函数(成功:OnSuccess(productID))。但是你必须先传递一个匿名函数:

  function callWebService(cartObject) {

    $.ajax({
      type: "POST",
      url: "http://localhost/AspNetWebService.asmx/YourMethodName",
      data: cartObject,
      contentType: "application/x-www-form-urlencoded",
      dataType: "html",
      success: function () {
        OnSuccess(cartObject.productID)
      },
      error: function () {
        OnError(cartObject.productID)
      },
      complete: function () {
        // Handle the complete event
        alert("ajax completed " + cartObject.productID);
      }
    });  // end Ajax        
    return false;
  }

如果不使用匿名函数作为包装器,则即使 Web 服务返回异常,也会调用 OnSuccess。