Ajax返回错误,调用错误ajax错误调用

时间:2015-10-13 12:55:34

标签: javascript php jquery ajax

我有一个更新我的数据库的ajax函数..该函数运行良好,更新数据库后我调用我创建的successAlert()函数..但是现在我想调用错误函数以防出错然而,在故意测试中断代码我仍然得到successAlert()。

Ajax / Javascript:

var share = "test"
var custid = "test"    

$.ajax({
            url: "assets/ajax/customer-rec.php",
            type: "POST",
            data: {UpdateAccount: "yes",custid: custid,share: share},
            success: function(result){
                successAlert()      
            },
            error: function(result){
                errorAlert()    
            }
        });

PHP更新数据库

if (isset($_POST['UpdateAccount'])){

    $custid = $_POST['custid'];
    $share = $_POST['share'];
    $query="UPDATE `users` SET `share_ord`='$share' WHERE id= $custid";
    $stmt = mysql_query($query);

    if($stmt === false){
        return false
    }

}

4 个答案:

答案 0 :(得分:5)

return false不是错误。如果您想发送错误使用标题,如

header('X-PHP-Response-Code: 404', true, 404);

您也可以成功调用相同的errorAlert()函数,以便

$.ajax({
        url: "assets/ajax/customer-rec.php",
        type: "POST",
        data: {UpdateAccount: "yes",custid: custid,share: share},
        success: function(result){
            if(result === false){
               errorAlert()
            } else  {
               successAlert()
            }      
        },
        error: function(result){
            errorAlert()    
        }
    });

答案 1 :(得分:0)

要获得错误,您需要从提供请求的php函数返回状态代码“404”。

答案 2 :(得分:0)

当服务器返回指示错误的HTTP状态代码时会触发error回调,因此您应该发送一个,HTTP 500

if($stmt === false){
    header('HTTP/1.1 500 Server error');
}

在此处查看list of HTTP状态代码

答案 3 :(得分:0)

.ajax()将调用success方法,因为一旦服务器成功处理了您的请求,它就会重新运行HTTP_OK到客户端,如果.ajax没有收到HTTP_OK,那么它将调用错误。根据您的代码,它将调用成功,因为url存在且服务器将HTTP_OK发送到浏览器。 如果您想生成- (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]; [_webView loadRequest:[NSURLRequest requestWithURL:url]]; } ,请提供错误的网址或断开互联网或只是更改

在PHP中:

error:

在你的JS中:

if($stmt === false){
      //If you want really generate some http error.
       header('X-PHP-Response-Code: 500', true, 500);
       exit(0);
      //or else continue as per code
      // return false;   
    }