Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery $.ajax:如果数据为0,则无法生成错误_Jquery - Fatal编程技术网

Jquery $.ajax:如果数据为0,则无法生成错误

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

请告知,因为我是jQuery新手。 以下代码为:

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也正确,谢谢