为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax成功事件不起作用

Ajax成功事件不起作用

慕标琳琳 2019-12-27 09:17:43
我有一个注册表,正在使用$.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请求的成功回调中?
查看完整描述

3 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

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


无论如何,您似乎都不需要在该函数中使用JSON,因此您也可以删除该dataType: 'json'行。


查看完整回答
反对 回复 2019-12-27
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

尽管问题已经解决,但我希望可以为他人提供帮助。


我犯了一个错误,试图直接使用这样的函数(成功: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。


查看完整回答
反对 回复 2019-12-27
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我尝试删除dataType行,但它对我不起作用。我通过使用“ complete”而不是“ success”作为回调来解决此问题。在IE中,成功回调仍然失败,但是由于我的脚本可以运行并完成,所以我只关心它。


$.ajax({

    type: 'POST',

    url: 'somescript.php',

    data: someData,

    complete: function(jqXHR) {

       if(jqXHR.readyState === 4) {

          ... run some code ... 

       }   

    }        

 });

在jQuery 1.5中,您也可以这样做。


var ajax = $.ajax({

    type: 'POST',

    url: 'somescript.php',

    data: 'someData'

});

ajax.complete(function(jqXHR){

    if(jqXHR.readyState === 4) {

        ... run some code ... 

    }

});


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 662 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信