javascript:==字符串的怪异行为

时间:2010-11-23 21:21:00

标签: javascript equals

这是我的代码:

    $.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方法只是根据某些动作返回“成功”或“失败”。

4 个答案:

答案 0 :(得分:1)

把这个放在条件之前:

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

假设您的代码使用的是JQuery

答案 1 :(得分:1)

尝试:

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

如果跨浏览器不支持trim方法,则可能需要对其进行原型设计。

答案 2 :(得分:1)

简单地说,您可以使用===进行比较。可能有用。

答案 3 :(得分:0)

文字周围可能有空白区域。

我可以建议一种强大的方法来解决此问题,以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
    }