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