Ajax响应给出数据成功错误


Ajax Response is giving data success error

我是Ajax新手,希望通过链接到PHP脚本,在JQUERY中使用Ajax执行一些数据库交互。

        $(function() {  
          $.ajax({
                type: "POST",
                url: "response.php",
                data: {name:"amol"},
                success: function (data) {
                if (data.Success) {
                    alert('Success! We have data.Success!');
                 } else {
                    alert('Error! We do not have data.Success!');
                }
            },
            error: function(jqXHR, textStatus) {
                alert('Error: ' + textStatus);
            }          
             });
        });

我的response.php文件包含的内容不多。其中的代码是:

        <?php
         echo "Hello";
         ?>

我想用这段代码进行数据库交互。但是当我运行这么多代码时,我得到的输出是"Error!"我们没有数据,成功!

另外,我想知道,如何从php脚本成功响应输出变量?

提前感谢您的帮助!!

success: function(data) {
    alert('Success! We have data - Success!');
}

将按预期工作

你所做的是问你是否有一个data对象和Success项目,行

if (data.Success) {

data只是一个字符串,因此计算结果为false

success: function(data) {部分只有在您成功返回数据时才会发生

然后你可以通过将数据添加到div, alert或其他地方来使用这些数据

 success: function(data) {
    alert(data);
}

您返回的正是预期的内容,因为data变量没有Success项-相反,您返回的是字符串(认为$string = "hello" - data = $string生效!)

试试这段代码…

$.post("response.php", {name:"anmol"},function(data){
alert(data);
});

在你上面的代码中…

<?php
         echo "Hello";
         ?>

这里你传递字符串,所以你可以简单地使用…

如果你想传递数组值你可以像这样使用

<?php
$data=array(
"name":"anmol",
"age":"21",
);
echo json_encode($data);
         ?>
    $.post("response.php", {name:"anmol"},function(data){
var json = $.parseJSON(data);
    alert(json.name);
    alert(json.age);
    });

在这里,只有当函数成功时才会得到警告,在函数失败时,你不能得到任何响应

这工作(我刚刚测试)与您的JavaScript代码:

<?php
$json_response = array();
$json_response['Success'] = true;
header('Content-Type: application/json');
echo json_encode($json_response);
?>

问题是您没有响应JSON对象(这是一种数据交换格式)

你帖子中的第一条评论是对的,Graham Ritchie的解释也是对的;此外,您应该查看jQuery AJAX文档中的示例。

此外,您应该考虑donefail,而不是successerror,因为它们在较新的jQuery版本中被认为已被弃用。他们只是更先进一点,但更强大。

下面是一个通用的例子:

    $(function() {  
      $.ajax({
        type: "POST",
        url: "response.php",
        data: {name:"amol"}
      })
      .done(function(data) {
        // What you want to do in case of success 
        // 'data' is going to be what the URL gives you. i.e.: HTML, JSON
        // You could append the HTML to a DIV or use the JSON in some way
      })
      .fail(function(jqXHR, textStatus) {
        // What you want to do in case of error
      });
    });

我建议您查看本教程,特别是关于AJAX和Deferred的最后一章。

如果您是ajax新手。我建议你开始使用这个狗屎

$.ajax({
        url: 'response.php',
        type: 'POST',
        dataType: 'json',
        data: {name: 'amol'},
    })
    .done(function(data) {
        if (data.Success) {
                    alert('Success! We have data.Success!');
                 } else {
                    alert('Error! We do not have data.Success!');
                }
        console.log("success");
    })
    .fail(function() {
        console.log("error");
    })
    .always(function() {
        console.log("complete");
    });