Javascript 如何检查respone post jquery是否为空或有错误?

Javascript 如何检查respone post jquery是否为空或有错误?,javascript,jquery,Javascript,Jquery,我试试这个: $.post('blog.php', { }, function(data,status){ if(data && data != "") { $("#readmore").before(data); } else { alert('no more text'); } }); 正常情况下,它是有效的。但

我试试这个:

$.post('blog.php',
    {   },
    function(data,status){
        if(data && data != "")
        {
            $("#readmore").before(data);
        }
        else
        {
            alert('no more text');
        }
});
正常情况下,它是有效的。但是当blog.php为空时,不要运行else条件


blog.php的内容是文本。

如果请求成功并真正返回一个空白字符串,您的检查就可以了,尽管您不需要它的后半部分。例如:

if (data) {
    // Yes it's there
} else {
    // No, it's blank
}
…足够了。但是,如果它可能有任何空白,则需要首先修剪:

一些像IE8这样的旧浏览器可能没有trim,但您可以轻松地填充它

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

这给了我们:

$.post('blog.php')
    .done(function(data){
        if (data.trim())
        {
            $("#readmore").before(data);
        }
        else
        {
            alert('no more text');
        }
    })
    .fail(function() {
        // it failed
    });
请注意,这假设响应上的内容类型为text/html或text/plain或类似,因此您将返回一个字符串。从你所说的来看,那可能是真的

通过使用浏览器中内置的调试器,您总能准确地看到正在发生的事情:

使用菜单或IE上的F12和其他一些或Ctrl+Shift+Ichrome和其他一些打开开发者工具,我认为在MacOSX上是Cmd+Shift+I

切换到IE上可能称为“调试器”的“源”选项卡

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

单击“完成”处理程序中第一行的行号旁边的左侧空白处,将显示一个红色标记或条,这意味着那里有一个断点将停止代码。对失败处理程序中的第一行执行相同的操作

触发post操作。您的一个断点应该被命中,从而导致执行在该点停止

如果它位于“完成”处理程序中,请将鼠标悬停在数据上以准确查看其中的内容,或者切换到“控制台”选项卡,键入数据,然后按enter键,它将显示数据参数的内容


你的代码怎么了?当数据为“空”时是什么样的?控制台记录数据部分并显示使用浏览器中内置的调试器在if上设置断点,并在您认为post为空时查看数据中的内容。另外,请注意,如果数据&&data!=在功能上等同于使用这些操作数的if数据,如果左边的操作数是真实的,那么右边的操作数就不能是虚假的,所以您可以不使用它。@VishalKumarMitra:不需要在黑暗中用console.log手电筒蹒跚而行,当您可以打开指示灯时:-@T.J.克劳德:谢谢你的短语。谢谢你的回答。你说得对。我用exit“”打印了内容,并在blog.php中为空状态返回false,现在它可以工作了。
$.post('blog.php')
    .done(function(data){
        if (data.trim())
        {
            $("#readmore").before(data);
        }
        else
        {
            alert('no more text');
        }
    })
    .fail(function() {
        // it failed
    });