关于ajax data=="true"问题data是ture类型是String比较出来为什么是false?

u014490157 2014-05-29 04:15:30
$.ajax({
url:"verificationusername?username="+usernames,
type:"get",
dataType:"text",
success:function(data){
alert(typeof(data));//string
alert(data); //true
alert(data=="true"); //false
if(data=="true"){
alert("执行");

}
},
...全文
565 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_29873911 2015-09-15
  • 打赏
  • 举报
回复
已经被这个问题折磨过一次 ,原来是折磨解决的, 当时,我直接不反悔 true false ,改成返回 1 或 2了。。。。别人后来看逻辑都看不明白。。。害我还解释了一遍 PS:为什么论坛的验证码折磨难分辨啊,好烦
小律律 2014-05-30
  • 打赏
  • 举报
回复
引用 18 楼 u014490157 的回复:
问题解决了,是true后面有空格的问题,去下空格就行了!
看了下问题。思考了一下。回复了一下。。怎么也要给1分吧。太纠结了。再也不想回复技术贴了
jackson_fighting 2014-05-30
  • 打赏
  • 举报
回复
引用 16 楼 huanglin02 的回复:
[quote=引用 12 楼 u014490157 的回复:] [quote=引用 8 楼 SDN_SUPERUSER 的回复:] 用 if(data){ }
data是String类型的if(data)都是true[/quote]嗯。一般 if ()里面 都定义为true 了。到底为啥。估计是语法规定了吧(⊙o⊙)…不大清楚。一般都是默认为true的[/quote] 嗯,我误以为是boolean类型了。
u014490157 2014-05-30
  • 打赏
  • 举报
回复
问题解决了,是true后面有空格的问题,去下空格就行了!
u014490157 2014-05-30
  • 打赏
  • 举报
回复
引用 13 楼 suciver 的回复:
[quote=引用 11 楼 u014490157 的回复:] [quote=引用 5 楼 suciver 的回复:] 楼主用firebug看下返回的data是不是真的只是true还是说true后面跟了\r\n这样的换行
就是true[/quote] 你用网络的响应看是看不出true后面是不是有跟着空格这些的。如果你不用firebug来看 if(data=="true")改成if($.trim(data)=="true")利用jquery的取前后空字符[/quote] thanks过然是空格问题,去掉之后就好了
小律律 2014-05-30
  • 打赏
  • 举报
回复
引用 12 楼 u014490157 的回复:
[quote=引用 8 楼 SDN_SUPERUSER 的回复:] 用 if(data){ }
data是String类型的if(data)都是true[/quote]嗯。一般 if ()里面 都定义为true 了。到底为啥。估计是语法规定了吧(⊙o⊙)…不大清楚。一般都是默认为true的
u014490157 2014-05-30
  • 打赏
  • 举报
回复
引用 6 楼 shine333 的回复:
其实,真相是残酷的
alert(data == 1);
1 != "true"; 所以data != "true"
我是菜鸟,没怎么看懂,data不是String类型的吗和1比较本来就是false啊
u014490157 2014-05-30
  • 打赏
  • 举报
回复
引用 3 楼 huanglin02 的回复:
你可以不用这样啊。在后台 判断。是true 就写入 传过来。是false 就不传过来。或者你 这边 if(data==ture){ }这是试一下。没你这样弄过。一般都是后台判断的
这或许也是个办法,但是我想知道一下这个为什么不可以呢
suciver 2014-05-30
  • 打赏
  • 举报
回复
引用 11 楼 u014490157 的回复:
[quote=引用 5 楼 suciver 的回复:] 楼主用firebug看下返回的data是不是真的只是true还是说true后面跟了\r\n这样的换行
就是true[/quote] 你用网络的响应看是看不出true后面是不是有跟着空格这些的。如果你不用firebug来看 if(data=="true")改成if($.trim(data)=="true")利用jquery的取前后空字符
u014490157 2014-05-30
  • 打赏
  • 举报
回复
引用 8 楼 SDN_SUPERUSER 的回复:
if(data){ }
data是String类型的if(data)都是true
u014490157 2014-05-30
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
楼主用firebug看下返回的data是不是真的只是true还是说true后面跟了\r\n这样的换行

就是true
jackson_fighting 2014-05-29
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
楼主用firebug看下返回的data是不是真的只是true还是说true后面跟了\r\n这样的换行
++ 楼主的代码是没有问题的,看下数据问题。
jackson_fighting 2014-05-29
  • 打赏
  • 举报
回复

var data = "true"; data == true;
false
var data = true; data == true;
true
var data = true; typeof(data)
"boolean"
var data = "true"; typeof(data)
"string"
jackson_fighting 2014-05-29
  • 打赏
  • 举报
回复
if(data){ }
jiabiaoli 2014-05-29
  • 打赏
  • 举报
回复
var num=1; var str="true"; var b=true; alert(typeof(num));//number alert(typeof(str));//string alert(typeof(b));//boolean alert(str); //true alert(str=="true");//true 不明觉厉
shine333 2014-05-29
  • 打赏
  • 举报
回复
其实,真相是残酷的
alert(data == 1);
1 != "true"; 所以data != "true"
suciver 2014-05-29
  • 打赏
  • 举报
回复
楼主用firebug看下返回的data是不是真的只是true还是说true后面跟了\r\n这样的换行
小律律 2014-05-29
  • 打赏
  • 举报
回复
引用 2 楼 D_re_am 的回复:
用===试试?
别闹了
小律律 2014-05-29
  • 打赏
  • 举报
回复
你可以不用这样啊。在后台 判断。是true 就写入 传过来。是false 就不传过来。或者你 这边 if(data==ture){ }这是试一下。没你这样弄过。一般都是后台判断的
D_re_am 2014-05-29
  • 打赏
  • 举报
回复
用===试试?
加载更多回复(1)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧