首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax成功:我无法检查返回的信息是真还是假。

ajax成功:我无法检查返回的信息是真还是假。
EN

Stack Overflow用户
提问于 2014-01-28 03:04:03
回答 5查看 1.1K关注 0票数 0

当我试图检查返回的信息是正确还是错误时,我遇到了问题。在console.log中返回true,但总是输入其他..。

代码语言:javascript
复制
$.ajax({
                    url: "ajax.php",
                    type: 'POST',
                    data: 'act=login&email=' + email + '&password=' + password + '&remember=' + remember,
                    success: function(data) 
                    {
                        console.log(data);
                        if (data.success === true)
                        {
                            $("#login-form")[0].reset();
                            window.location.replace('dashboard.php');
                        }
                        else
                        {
                            $(".error-message span").html('Please, insert valid data.');
                            $('.error-message').fadeIn('slow', function () {
                                $('.error-message').delay(5000).fadeOut('slow');
                            });
                        }
                    }
                });

谢谢大家。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-28 03:07:00

Console.log打印data

您的IF语句检查`data.uccess‘。这是两个不同的元素。

您是以什么格式从ajax.php发送回数据?

不能假设数据是数组或JSON对象,必须先解析它。

代码语言:javascript
复制
json = JSON.parse(data);

if (json.success === true) {} //or if (json === true) depends on the response from ajax.php

根据您的注释,如果返回的数据仅为真或假,只需使用

代码语言:javascript
复制
if (data == true) {//I use double and not triple equality because I do not know if you are returning a string or a boolean.
}

你有两个问题:

  1. 您正在尝试访问data.success,而不是仅仅访问数据。
  2. 您使用的是严格比较(===),我不确定返回的数据是否是布尔数据,而不是字符串。@Pekka的回答也提到了这一点(但是由于data.success不存在,所以它不会起作用)。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2014-01-28 03:06:00

返回值可能是字符串true,而不是JavaScript布尔true

因为您使用的是严格的===比较,这需要相同的变量类型,所以它总是失败的。

与字符串进行比较:

代码语言:javascript
复制
if (data.success == "true")
票数 0
EN

Stack Overflow用户

发布于 2014-01-28 03:06:29

如果您的数据看起来像{"success": true},那么在ajax处理程序没有将响应解析为json数据的情况下,数据解析可能是一个问题。而是传递一个字符串。

因此,尝试将dataType属性设置为json,以告诉ajax您正在期待一个json响应。

代码语言:javascript
复制
$.ajax({
    url: "ajax.php",
    type: 'POST',
    data: 'act=login&email=' + email + '&password=' + password + '&remember=' + remember,
    dataType: 'json',
    success: function (data) {
        console.log(data);
        if (data.success === true) {
            $("#login-form")[0].reset();
            window.location.replace('dashboard.php');
        } else {
            $(".error-message span").html('Please, insert valid data.');
            $('.error-message').fadeIn('slow', function () {
                $('.error-message').delay(5000).fadeOut('slow');
            });
        }
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21396054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档