看看firebug,gmail发送GET请求得到类似的东西:
while (true); &&&START&&&{"Success":true,"Body":{"Contacts":"[[,[,,\"83473f5sc6b17e0\",,[[,1,\"1\"]\n]\n[,,,[,,[,[,,,,,,,,,,,[[,1]\n
...
} &&&END&&&
答案 0 :(得分:6)
看起来像普通的JSON,很可能是对RPC的响应,但是以某种方式对主体进行编码(可能是为了减小大小,从而减少带宽使用)。 while (true);
位是为了避免使用指向RPC端点的脚本标记对数据进行跨站点访问 - 通过在脚本到达多汁的私有信息之前使其崩溃,可以防止恶意站点使用数据。在剥离开始和结束标记之外的所有内容之后,解析将使用JSON.parse
或类似的。
如果您运行像gmail这样的大型网站,并且可以控制客户端,那么这种压缩编码会很有帮助。然而,REST对第三方开发人员非常有用,因为它更容易调试(和文档!)。但是,对于允许GET并在响应中携带敏感数据的任何API,while(true)
位都是必需。