2010-11-23 47 views
0

==的怪異的行爲這是我的代碼:的javascript:字符串

$.ajax({ 
    type: "POST", 
    url: "/myURL", 
    success: function(msg){ 
     alert(msg); 
     // aler prints success, but msg != "success" ???? 
     if (msg == "success") { 
      //my code 
     } else { 
      //other code 
     } 
    } 
}); 

東西weired情況:警告對話框打印成功,但味精=「成功」。我錯過了什麼? 我的PHP方法基於某些動作返回「成功」或「失敗」。

+7

'/ myUrl`的輸出是否可以用前導空白或尾隨空白返回成功? – 2010-11-23 21:24:04

回答

1

把這個條件語句之前:

msg= jQuery.trim(msg).toLowerCase(); 

假設你正在使用JQuery

由代碼
0

文字周圍可能有空白。

我可以建議,爲了解決這個問題的可靠方法,請以特定格式返回數據,例如JSON

添加

dataType:'json' 

到$阿賈克斯的配置,並具備PHP輸出

header('Content-Type: application/json'); 
echo json_encode(array('msg'=>'success')); 

'msg'=>'failure'了另一種可能性,當然。

在JS

然後,

success: function(data){ 
    alert(data.msg); 
    if (data.msg == "success") { 
     //my code 
    } else { 
     //other code 
    } 
1

嘗試:

if (msg.trim().toLowerCase() == "success") 
{...} 

你可能不得不公開如果不支持跨瀏覽器,則採用方法。

1

簡而言之,您可以使用===進行比較。可能會有用。