Ajax成功事件不起作用

我有一个注册表,正在使用$.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请求的成功回调中?


慕标琳琳
浏览 794回答 3
3回答

HUH函数

结果可能不是JSON格式,因此当jQuery尝试如此解析时,它将失败。您可以使用error:回调函数捕获错误。无论如何,您似乎都不需要在该函数中使用JSON,因此您也可以删除该dataType: 'json'行。

繁花不似锦

尽管问题已经解决,但我希望可以为他人提供帮助。我犯了一个错误,试图直接使用这样的函数(成功:OnSuccess(productID))。但是您必须先传递一个匿名函数:&nbsp; function callWebService(cartObject) {&nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; type: "POST",&nbsp; &nbsp; &nbsp; url: "http://localhost/AspNetWebService.asmx/YourMethodName",&nbsp; &nbsp; &nbsp; data: cartObject,&nbsp; &nbsp; &nbsp; contentType: "application/x-www-form-urlencoded",&nbsp; &nbsp; &nbsp; dataType: "html",&nbsp; &nbsp; &nbsp; success: function () {&nbsp; &nbsp; &nbsp; &nbsp; OnSuccess(cartObject.productID)&nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; error: function () {&nbsp; &nbsp; &nbsp; &nbsp; OnError(cartObject.productID)&nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; complete: function () {&nbsp; &nbsp; &nbsp; &nbsp; // Handle the complete event&nbsp; &nbsp; &nbsp; &nbsp; alert("ajax completed " + cartObject.productID);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });&nbsp; // end Ajax&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return false;&nbsp; }如果不使用匿名函数作为包装器,则即使Web服务返回异常,也会调用OnSuccess。

米琪卡哇伊

我尝试删除dataType行,但它对我不起作用。我通过使用“ complete”而不是“ success”作为回调来解决此问题。在IE中,成功回调仍然失败,但是由于我的脚本可以运行并完成,所以我只关心它。$.ajax({&nbsp; &nbsp; type: 'POST',&nbsp; &nbsp; url: 'somescript.php',&nbsp; &nbsp; data: someData,&nbsp; &nbsp; complete: function(jqXHR) {&nbsp; &nbsp; &nbsp; &nbsp;if(jqXHR.readyState === 4) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ... run some code ...&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;});在jQuery 1.5中,您也可以这样做。var ajax = $.ajax({&nbsp; &nbsp; type: 'POST',&nbsp; &nbsp; url: 'somescript.php',&nbsp; &nbsp; data: 'someData'});ajax.complete(function(jqXHR){&nbsp; &nbsp; if(jqXHR.readyState === 4) {&nbsp; &nbsp; &nbsp; &nbsp; ... run some code ...&nbsp;&nbsp; &nbsp; }});
打开App,查看更多内容
随时随地看视频慕课网APP