[英]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.