猿问

有时不执行ajax函数的成功部分

我正在编写一个个人网站,但遇到了一个小问题。网站这小部分的目的只是为了执行 sql 命令。


我使用 ajax 从另一个文件调用 php 函数,如这部分代码所示:



jQuery.ajax({

                    type: "POST",

                    url: 'send.php',

                    dataType: 'json',

                    data: {functionname : 'test', arguments: [rep1,rep2,rep3,rep4,rep5,rep6,rep7,rep8,rep9,rep10,rep11,rep12,rep13]},


                    success: function (obj, textstatus) {

                                  if(!('error' in obj) ) 

                                  {

                                      if(obj.result == "success")

                                      {

                                        messageErreur('Merci d\'avoir pris le temps de répondre à notre questionnaire.', '');

                                      }

                                  }

                                  else 

                                  {

                                      messageErreur(obj.error, 'Erreur');

                                  }

                            }

                    });


这是 ajax 函数调用的脚本:


<?php 


        header('Content-Type: application/json');

        $aResult = array();


        $servername = "localhost";

        $username = "root";

        $password = "";

        $dbname = "amorino";


        $conn = new mysqli($servername, $username, $password, $dbname);



        if ($conn->connect_error) 

        {

            $aResult['error'] = "Erreur avec la connexion a la base de donnees.";

        }

        


当一切正常时,sql命令执行良好,ajax函数调用函数messageErreur()


但我想试试这个小脚本是否一切正常,所以我试图输入错误的数据库主机或用户名。PHP 脚本正确返回信息:


{"error":"Erreur avec la connexion a la base de donnees."}

但是 ajax 函数不执行它的成功部分,因此不调用该函数 messageErreur(obj.error, 'Erreur');


我试图调试 php 脚本和 javascript 但问题不是来自 php 部分。我唯一可以告诉你的是,调用了php脚本,但没有调用ajax函数的成功部分。


需要帮忙 !


谢谢你 !!


子衿沉夜
浏览 189回答 1
1回答

噜噜哒

正如文档所述Success:请求成功时调用的函数。如果请求没有成功,则不会调用此函数。在这种情况下,您可以使用 jqXHR.fail()。还有 jqXHR.done()、jqXHR.always() 和 jqXHR.then()。例如:jQuery.ajax({&nbsp; &nbsp; &nbsp; &nbsp; type: "POST",&nbsp; &nbsp; &nbsp; &nbsp; url: 'send.php',&nbsp; &nbsp; &nbsp; &nbsp; dataType: 'json',&nbsp; &nbsp; &nbsp; &nbsp; data: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; functionname: 'test',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; arguments: [rep1, rep2, rep3, rep4, rep5, rep6, rep7, rep8, rep9, rep10, rep11, rep12, rep13]&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }).done(function (obj, textstatus) {&nbsp; &nbsp; &nbsp; &nbsp; if (!('error' in obj)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (obj.result == "success") {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; messageErreur('Merci d\'avoir pris le temps de répondre à notre questionnaire.', '');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; messageErreur(obj.error, 'Erreur');&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }).fail(function (obj, textstatus, error) {&nbsp; &nbsp; &nbsp; &nbsp; //your error handler&nbsp; &nbsp; });您绝对应该阅读ajax的文档
随时随地看视频慕课网APP
我要回答