繁体   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