jquery,ajax已成功,并且status为success,为何得到的结果集是false?
jquery,ajax请求得到json数据,并且此时status为success,但是在safari浏览器下,返回的结果中 竟然是 false,其他浏览器没有问题,有大神遇到过类似情况么?
各个浏览器中都能success,但是为什么只有safari下,虽然成功了,但结果集却返回了false
FYI
http://grayrabbit.iteye.com/blog/1387679
这个好像和题目不符合吧。。。就是用的原生的jquery,和那个没有关系
你确定你用safari的时候服务器返回的是success么,浏览器收到的却是false?
我确定,我调试已经执行到 success,并且status=success,也没有超时什么的
但是 得到的json数据就返回false;而且我试了一下,如果减少返回json的长度,就能正确返回
所以在想是不是 safari有什么返回字符串的限制什么的?
但是 网站找了好久,也没此问题的说明了
而且,我拿到请求的url,直接在浏览器的地址栏输入后,是有结果的,但是调试js的时候,返回就是false,郁闷了。。。
@糖糖果: 没听说过还有这个兼容问题。。。。把你的返回结果贴一下
@羽商宫: 其实返回结果很普通了,没什么特别,就是类似下面的
{"flag":0,"html":"<div class=xxx><span class=xxx > </span></div>"}
只不过 html内容比较长而已
而且我试了,把返回结果拿到,本地环境ajax请求,经过后台返回结果,不管是什么浏览器都能返回,safari下也不返回false了,很蛋疼了。。。
@糖糖果: 是不是因为你的字符串中有html标签的原因。。。。所以当在线上的时候就会导致出现问题,而本地的时候就不会。。
@羽商宫: 不好意思了,回复晚了,,,我觉得也不是html标签的问题,因为我把返回结果中,的html字符串,获取的短一点的话,是可以正常的
你可不要骗我~看请求的明细。
看过了的 ,是执行到success了,但是 就 safari浏览器返回false,其他的浏览器正常
@糖糖果: 可以看看请求头,看看是不是接收的格式问题。
@幻天芒: 如果是接收格式的问题,但是 字符串变少的话,就能正常显示,所以在想safari下是不是有字符串的限制问题
@糖糖果: 这个一步步验证就能确认。
什么也别说了, 上代码吧!
谢谢关注,稍等
我就来看看的 解决了么
谢谢关注,稍等
什么也别说了, 上代码上调试图吧!
谢谢关注,稍等
按照lz的说法基本上一切可能性都排除了.
建议加上error.察看是否出现了错误.
服务段是否做了限制.
{"flag":0,"html":"<div class="xxx"><span class="xxx" > </span></div>"}
这是你的返回结果???那么你所说的status=success应该只是ajax请求的返回状态吧,最好还是把返回值改改,可以返回类似
{"status":"success","flag":0,"html":"<div class="xxx"><span class="xxx" > </span></div>"}
返回函数用complete,如果这样得到的status=success那才真的是success
是返回的数据中解析出来的是false吗?
要不加个JSON.stringify(data)解析一下试试?
safari 不支持 ajax....或者 safari 需要特殊处理,
Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; HTC Desire Z Build/MIUI) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
这个是抓包知道的浏览器,这两个不支持。