javascript'if'没有从ajax中捕获null

时间:2014-01-15 15:49:16

标签: javascript php jquery ajax

我有一个javascript ajax请求,如果找不到任何内容则返回null,然后显示没有找到用户的结果。这之前工作正常但由于某种原因已停止。 IF语句似乎不再捕获空值。

//on success
        success: function(data) {

            if(data == 'null') {
                buildaccordion("<h3>No Results Found</h3><div>No Data to Show.</div>");
                return;
            }

当我看到php方面的反应时,我确实正在从服务器发送文本'null'。我还检查了firefox中内置的调试器,数据的值是“null”。但if语句没有抓住它!?

以前工作正常,我看不出会造成什么。

我也试过

== null

=== null

==='null'

4 个答案:

答案 0 :(得分:4)

由于您提到其类型已显示为字符串,您可以执行以下操作:

if(data.trim()=='null')


上一个答案:

当您说if data=='null'时,您确实在检查数据是否为字符串null

 if(data == 'null') 

应该是

 if(!data) 

或者

if(typeof data === 'undefined')

答案 1 :(得分:1)

您可以尝试if( !data )

null和0都是一样的。

答案 2 :(得分:1)

为了确定(因为你不确切知道返回值的类型是什么),更好地实现一个包罗万象的解决方案:

if((!data) || (data == 'null') || (typeof data === 'undefined') || (!data.length)) {
    // No results
}

答案 3 :(得分:0)

某处有空间吗?也许if( data.replace(/^\s+/,"").replace(/\s+$/,"")=="null" ) ...可行吗?