闪星空间 » HTTP

iOS QQ 内置浏览器 AJAX 失效的两个原因及解决方法

今天总算解决了网站的两个 BUG。症状表现都是,用 iOS 上的手机 QQ 内置浏览器,AJAX(通过 jQuery 或是原生 XMLHttpRequest 使用)出现错误。如果不用手机 QQ 内置浏览器,用 iOS 系统自带 Safari,甚至微信内置浏览器,都能正常工作。一个是 GET 请求,另一个是带数据(请求体)的 POST 请求。

后来研究发现,理论上在别的环境下也可能有错,尤其是旧版本的 Safari 等,这是后话了。我们进入正题。

阅读全文 »

Published @

用 JavaScript 判断用户是否启用了请勿追踪(DNT)

在几年前我发布了《多语言判断用户是否启用了请勿追踪(Do Not Track)》一文,介绍了“请勿追踪”的功能,并引用资料给出了多种语言的代码,判断用户是否启用了该功能。在我洋洋得意给出 PHP 优化版的代码后,又介绍了 JavaScript 的方法,但并未实际给出代码,只是说非常麻烦,不建议使用。

今天,我在给这个博客加入统计代码时考虑了这个功能:当访客开启 DNT 时,本站不会插入统计代码;否则会有第三方统计脚本载入。于是又看了 DNT 的一些现状,回顾了那篇文章。我发现,尽管我那么说,但用 JavaScript 其实也是可以写的。当然,我的立场是一贯的:优先使用 HTTP 头(header)判断是最好的。JavaScript 的相关特性仍处于实验阶段。

阅读全文 »

Published @

多语言判断用户是否启用了请勿追踪(Do Not Track)

请勿追踪(英语:Do Not Track,简称 DNT,又译为“请勿跟踪”)是一项被提名的 HTTP 头。当用户提出启用“请勿追踪”功能后,具有“请勿追踪”功能的浏览器会在 http 数据传输中添加一个“头信息”(headers),这个头信息向商业网站的服务器表明用户不希望被追踪。这样,遵守该规则的网站就不会追踪用户的个人信息来用于更精准的在线广告。

自 Firefox 浏览器成为世界上首个支持“请勿追踪”功能的浏览器后,Internet Explorer(9及以上)、Safari 和 Opera 浏览器也相继添加了对“请勿追踪”功能的支持。最后 Chrome 23 浏览器也宣布支持此功能。当前,国内许多浏览器也已经支持了“请勿追踪”功能,甚至一些浏览器设置成默认启用。

阅读全文 »

Published @