2 qq 27868825 qq_27868825 于 2016.09.08 17:56 提问

jquery $.ajax() success回调函数问题

success: function(data){
if(data.equals("admin")){
location.href = "admin.jsp";
}
else{
$("#head").html($.ajax({url: "head.jsp",async: false}).responseText)
}

}

这个data到底是什么类型的数据,为什么我这个if执行不了,后台已经能成功处理数据,用alert(data)能成功提示出后台处理过的数据,就是这个if执行不了,看看我加粗的地方写的对吗?

3个回答

showbo
showbo   Ds   Rxr 2016.09.08 18:08
已采纳

equals是java字符串的方法吧,javascript字符串没这个方法。。JavaScript不是java,不要搞混了
改为if(data=="admin")

qq_27868825
qq_27868825 回复showbo: 找到问题了,调试后发现success根本没有进入,所以才没有执行if语句
一年多之前 回复
qq_27868825
qq_27868825 回复showbo: 谢谢这么耐心回复我!我打开了f12开发人员工具,我想调试js,可是一直报错:源代码不可用于此位置,你知道是什么原因吗
一年多之前 回复
showbo
showbo 回复qq_27868825: 你得确认你进了success回掉没有先,自己f12打开浏览器开发工具看是否报错,ajax请求的url地址返回什么内容,是200状态还是500服务器报错了什么的。进入了success的话自己alert(data.length)看是多少,如果不是5那么说明有空格什么的,要用$.trim(data)去掉收尾空白
一年多之前 回复
qq_27868825
qq_27868825 谢谢指正!可是还是不行...登陆管理员后还是执行不了if语句块...
一年多之前 回复
gandilong
gandilong   2016.09.08 18:07

可能是个字符串
如果是json字符串的话,可以通过var obj=eval(data);使它变成json对象
这样就可以用obj.name这样的方式来获取属性。

至于js里用equals方式来比较字符串,是不行的。除非equals是json对象里的方法。js都是用==来比较的。

qq_27868825
qq_27868825 谢谢指正!可是还是不行...登陆管理员后还是执行不了if语句块...
一年多之前 回复
connectionIT
connectionIT   2016.10.03 22:27

也可以用indexOf("")>=0判断

Csdn user default icon
上传中...
上传图片
插入图片