Jquery $.ajax:如果数据为0,则无法生成错误
请告知,因为我是jQuery新手。 以下代码为:Jquery $.ajax:如果数据为0,则无法生成错误,jquery,Jquery,请告知,因为我是jQuery新手。 以下代码为: function get(database) { var dbValue = database; console.debug("dbvalue read as :", dbValue) $.ajax// use of jQuery here ({ type: "POST", url: "testc
function get(database)
{
var dbValue = database;
console.debug("dbvalue read as :", dbValue)
$.ajax// use of jQuery here
({
type: "POST",
url: "testconnect.php",
data: {nameDB: dbValue},
success: function(data)
{
alert("Successfully login and connected");
}
error: function(data)
{
alert("Unsuccessfully login and connected");
}
});
return false;
}
如果数据为1(真),警报将显示“成功登录并连接”。但是如果错误为0,它将无法生成“登录和连接失败”。如果AJAX请求中存在错误,将触发function(){}。如果AJAX请求未成功,则仅执行此函数
您可以通过比较success函数的输出来完成您想要做的事情,如下所示:
success: function(data) {
if(data == '1') alert("Successfully login and connected");
else alert("Unsuccessfully login and connected");
}
使用以下命令:
success: function (data) {
if (data == "1") {
alert("Successfully login and connected");
} else {
alert("Unsuccessfully login and connected");
}
}
成功与错误是指AJAX请求/响应过程是否成功,它不会尝试解释数据。成功和错误是内置的插件函数,仅用于表示AJAX请求是否成功执行。返回后,尝试检查数据中存储的值。 例如。 如果(数据==“0){alert(“登录错误”);} else if(data==“1”){alert(“登录成功”);}
else{}嗨,这是最令人困惑的。我试着用类型字符串、数字和位进行实验。 我找到了最准确的位类型(TRUE和FALSE) 以下是我在另一个php文件中测试后发现的内容:-
try
{
$dbh = new PDO($dsn, $user, $pswd, array(PDO::ATTR_TIMEOUT => "10",// 10 seconds
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); // connect to DB, declared as global variable!
$firephp->warn("Attempting to login and connect to server is successful.");
$connect = TRUE;
}
catch(PDOException $err)
{
$firephp->error("Attempting to use selected database is failed.");
$alertmsg = $err->getMessage();
$firephp->log($err);
$connect = FALSE;
它们是可行的,然后我修改旧代码如下所示:-
$.ajax// use of jQuery here
({
type: "POST",
url: "testconnect.php",
data: {nameDB: dbValue},
success: function(connect)// meant for ajax request purposes only, not 500 interval server error!
{
console.debug("data read as: ", connect);
if(connect)//as true or false as indicated in login.php
alert("Successfully login and connected");
else
alert("Attempt to login and connect is NOT successful");
},
就“success”而言,它只适用于数据库,无论它是否成功,我都会使用上面的代码。无论结果如何,“connect”将被解读为“11”为TRUE,而“connect”为FALSE
这样,它就不那么令人困惑,也不那么直截了当
最后,对于错误,它只适用于ajax错误,而不适用于数据库的状态
我会将其编码为:-
error: function(xhr, textStatus, error)// for only ajax errors, nothing to do w
{
console.debug(xhr.statusText);
console.debug(textStatus);
console.debug(error);
}
谢谢你的帮助。一切正常。但是我还没有测试Ajax错误。如何模拟Ajax错误?只有当Ajax请求失败时才会调用
error
函数。如果你从服务器得到响应(即使是“错误”响应)您将始终调用success:
函数。如果要使用错误事件,您需要在服务器端返回一个响应代码500内部服务器错误
。否则请在success函数中进行检查。@MikeW您是对的。谢谢。@MrCode也正确,谢谢