这个人可能有点啰嗦,但这让我和其他几个人感到困惑。
我们有一个在文件上传过程中更新的进度条。 JS是here(太多不能粘贴到这个主体中)。
基本上,表单提交事件启动一个计时器循环,每2秒触发一次$ .getJSON()调用,以检索一对有关上载状态的值。然后将这些值传递给更新进度条的函数。返回的JSON值是def有效的JSON。
现在,这个代码在Firefox和所有IE(甚至6个)上运行良好,所以我非常有信心服务器端代码是健壮的,但是......在Safari和Chrome中,进度条没有完全更新。
上传由Apache处理,并且console.log()调试显示定时器循环肯定正在运行 - 这只是getJSON似乎没有被触发(web检查员不显示调用,也没有Apache登录。
如上所述,这有点莫名其妙。有人在使用Chrome / Safari / Webkit之前遇到过这个问题吗?
答案 0 :(得分:1)
似乎Chrome的JSON.parse barfs在转义撇号:
[ "barf\'" ]
虽然未转义的撇号工作正常:
[ "accept'" ]
我已经能够通过使撇号不引用基于Webkit的浏览器来规避类似的问题。在你的情况下,它可能类似。
答案 1 :(得分:0)
也许this question可以提供一些有关调试的想法。我发现Safari和Chrome在处理JS的方式上也有点不对劲,所以,你绝对不是唯一的。