簡體   English   中英

javascript:字符串==的怪異行為

[英]javascript: weird behavior of == for strings

這是我的代碼:

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

發生了一些奇怪的事情:警報對話框顯示成功,但是msg!=“成功”。 我想念什么? 我的php方法只是根據某些操作返回“成功”或“失敗”。

將此放在條件句之前:

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

假設您使用的代碼是JQuery

嘗試:

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

如果不支持跨瀏覽器,則可能必須對trim方法進行原型設計。

簡而言之,您可以將===用於比較。 可能有用。

文本周圍可能會有空白。

我可以建議以一種可靠的方式來解決此問題,以特定格式(例如JSON)返回數據。

 dataType:'json'

到$ .ajax配置,並有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
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM