如何检查post jquery是空的还是有错误?

时间:2015-10-19 08:41:22

标签: javascript jquery

我试试这个:

$.post('blog.php',
    {   },
    function(data,status){
        if(data && data != "")
        {
            $("#readmore").before(data);
        }
        else
        {
            alert('no more text');
        }
});

通常它有效。但是当blog.php为空时,不要运行else条件。

blog.php的内容是文字。

1 个答案:

答案 0 :(得分:2)

如果请求成功并且真正返回一个空字符串,那么您的检查会没问题,尽管您不需要它的后半部分。 E.g:

if (data) {
    // Yes it's there
} else {
    // No, it's blank
}

......就足够了。但如果它可能有任何空格,则首先需要trim

if (data.trim()) {
    // Yes it's there
} else {
    // No, it's blank
}

(某些旧的浏览器,如IE8可能没有trim,但您可以轻松地对其进行填充/填充。)

要处理错误情况,请添加.fail处理程序;为了清洁,让我们将成功处理程序移动到.done,删除我们没有使用的参数的声明,并删除不必要的空白对象。

这给了我们:

$.post('blog.php')
    .done(function(data){
        if (data.trim())
        {
            $("#readmore").before(data);
        }
        else
        {
            alert('no more text');
        }
    })
    .fail(function() {
        // it failed
    });

请注意,这假设响应中的Content-Typetext/htmltext/plain或类似,因此您将返回一个字符串。从你所说的,这可能是真的。

通过使用浏览器内置的调试器,您可以随时查看到底发生了什么:

  1. 使用菜单或F12(在IE和其他一些菜单上)或Ctrl + Shift + I(Chrome和其他一些,我认为它是Mac OSX上的Cmd + Shift + I)打开开发人员工具。

  2. 切换到Source选项卡(可能在IE上称为Debugger)

  3. 找到你的代码,通常有一些方法来浏览加载的脚本。

  4. 点击done处理程序中第一行的左侧装订线(行号旁边),会出现一个红色标记或条,这意味着有一个断点< / em>会停止你的代码。对fail处理程序中的第一行执行相同的操作。

  5. 触发后期操作。你的一个断点应该被击中,导致执行在那时停止。

  6. 如果它位于done处理程序中,请将鼠标悬停在data上以查看完全其中的内容(或切换到“控制台”标签,键入data,然后按回车键,它会显示data参数的内容。