2013-12-10 51 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"');