2013-12-10 39 views
0

我正在构建使用Angularjs的Web应用程序。在我的一个控制器中,我打电话给后端,返回用户的当前登录状态。字符串http响应!=在javascript中的相同字符串

$http.get('http://localhost:3000/status') 
    .success(function(status) { 
     if (status == 'internal') { 
     // do stuff... 

即使请求的状态等于'internal',(status =='internal')的计算结果为false。为了测试这一点,我把

$http.get('http://localhost:3000/status') 
    .success(function(status) { 
     console.log(typeof status) 
     console.log(status) 
     console.log(status == "internal") 

它打印

string 
    "internal" 
    false 

任何想法什么可以去这里拧?

+1

什么,当你使用3平等标记会发生什么? '(status ==='internal')''也可以有一些额外的空格或类似的东西? – yuvi

+2

确保没有多余的空格被发送...检查状态长度与测试字符串的长度 – charlietfl

+0

@yuvi同样的东西 –

回答

7

对不起,如果您使用Chrome,这只是一个有效的答案。它看起来像火狐在控制台中用引号括起字符串。


您的字符串中有多余的引号。 console.log(string)不会显示报价。注意:

console.log("what") 
what 

你看到"internal"代替internal的唯一方法是,如果您对您的字符串额外的引号。

2

这应该是你在找什么:

console.log(status == '"internal"');