Php 即使没有成功,Ajax成功函数也可以工作

Php 即使没有成功,Ajax成功函数也可以工作,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,上面的ajax用于从some.php文件获取数据,该文件用于从mysql数据库获取数据。当有成功或从数据库检索到数据时,该文件会向消息发出警报,但即使我停止mysql服务器,然后再次调用ajax,它也会以$something的递减值向消息发出警报 那么,我如何使它工作起来,就像如果没有从数据库返回的行或空行,那么就不应该有成功,只有当有一些实际数据从数据库返回时才是成功的?类似于: $something=100; $.ajax({ type: "post",

上面的ajax用于从some.php文件获取数据,该文件用于从mysql数据库获取数据。当有成功或从数据库检索到数据时,该文件会向消息发出警报,但即使我停止mysql服务器,然后再次调用ajax,它也会以$something的递减值向消息发出警报


那么,我如何使它工作起来,就像如果没有从数据库返回的行或空行,那么就不应该有成功,只有当有一些实际数据从数据库返回时才是成功的?

类似于:

$something=100;
$.ajax({
          type: "post",
          url: "some.php",
          data: somevariable,
          dataType: "text",                  
          success: function(data) {         
            $something=$something-10; 
            alert($something);
          }.bind(this)
      });
根据数据的格式,您可能需要更彻底地检查数据


但是,如果没有数据,最好不要让服务器返回200(或另一个非错误代码)。

类似于:

$something=100;
$.ajax({
          type: "post",
          url: "some.php",
          data: somevariable,
          dataType: "text",                  
          success: function(data) {         
            $something=$something-10; 
            alert($something);
          }.bind(this)
      });
根据数据的格式,您可能需要更彻底地检查数据


但是,如果没有数据,最好不要让服务器返回200(或其他非错误代码)。

您可以这样做:-

function fail() {
    alert("Fail!");
}
$something=100;
$.ajax({
      type: "post",
      url: "some.php",
      data: somevariable,
      dataType: "text",                  
      success: function(data) {
        if(!data) return fail();         
        $something=$something-10; 
        alert($something);
      }.bind(this)
  }).fail(fail);
假设
data
是从服务器返回的数据数组

另外,为了安全起见,请使用deferred
jqXHR.fail()

success: function (data) {
    // Checking data is not null or undefined and valid data is returned
    if (data && data.length > 0) {
        $something = $something - 10;
        alert($something);
    }
}
这将帮助您找出从服务器返回数据时发生的特定错误,然后您可以采取适当的操作

或者,举个简单的例子:-

$.ajax("some_unknown_page.html")
.fail(function (jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }
    $('#post').html(msg);
});

您可以这样做:-

function fail() {
    alert("Fail!");
}
$something=100;
$.ajax({
      type: "post",
      url: "some.php",
      data: somevariable,
      dataType: "text",                  
      success: function(data) {
        if(!data) return fail();         
        $something=$something-10; 
        alert($something);
      }.bind(this)
  }).fail(fail);
假设
data
是从服务器返回的数据数组

另外,为了安全起见,请使用deferred
jqXHR.fail()

success: function (data) {
    // Checking data is not null or undefined and valid data is returned
    if (data && data.length > 0) {
        $something = $something - 10;
        alert($something);
    }
}
这将帮助您找出从服务器返回数据时发生的特定错误,然后您可以采取适当的操作

或者,举个简单的例子:-

$.ajax("some_unknown_page.html")
.fail(function (jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }
    $('#post').html(msg);
});

Ajax成功意味着Ajax调用成功。换句话说,这是成功的,因为ajax调用到达了服务器,服务器提供了响应。
使用“数据”字段(服务器的响应)将信息返回给客户端,以便客户端了解发生了什么。任何事情都会发生:代码、布尔值等等。

Ajax成功意味着Ajax调用成功。换句话说,这是成功的,因为ajax调用到达了服务器,服务器提供了响应。
使用“数据”字段(服务器的响应)将信息返回给客户端,以便客户端了解发生了什么。任何东西都可以:一个代码,一个布尔值,等等。

如果你愿意,你可以为它添加错误函数。如果你的php脚本返回一个200,它将始终是一个成功的ajax调用,你应该返回与some.php文件不同的内容或检查结果关闭数据库通常不会关闭Web服务器,您可以为此添加错误函数,如果您的php脚本返回200,它将始终是一个成功的ajax调用,您应该返回与some.php文件不同的内容或检查结果关闭数据库通常不会关闭Web服务器从jQuery 1.8开始,回调就不推荐使用。要准备代码以便最终删除回调,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。Kya Khoob Likha@palasH Ne。Umda.引用文档,“从jQuery 1.8开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调已被弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。”Umda Pradarshan。Kya Khoob Likha@palasH Ne。乌姆达。