jQuery中用getJSON来解决json跨域的问题

JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。当然,究其本质还是通过script标签动态加载js,似乎这是实现真正跨域的唯一方法。

getJSON的用法JQuery手册已经写得很详细,参考手册就可以了,很简单。需要指出的一点是getJSON利用的jsonp需要客户端与服务端作出配合。

  1. 客户端传递的URL里要包含callback变量,以形如callback=?的形式结尾。(jquery会随机生成一个字符串替换传递给服务端)
  2. 服务端获取客户端传递的callback的值callbackValue,和需要传递的json字符串构成 callbackValue.’(’.json.’)'传回给客户端(示例为php字符串连接方式,其他语言类似)

不出意外的话应该已经可以跨域读取了。

4月25日

最近写一些php的基础库。编程大师们说一个优秀的程序员要做到DRY,即donn’t repeat yourself。于是总希望能把常见的工作抽象到基础库中。重构、扩展、增增减减,一来二去的对设计模式有了新的理解,当然说白了还只是皮毛。从昨天晚上就一直为一个方法的灵活性而犯愁,总觉得不够灵活、不够优雅。今天早晨醒来的时候,突然想起unix的设计理念:只做一件事并让它做得最好。反向思维一下,方法太灵活,实现方式太多样,其实意味着你应用层代码越乱,因为你无法确定使用你基础库的人会采用何种方式。相反,如果只提供唯一的方法,应用层代码反而清晰,程序可读性就会更强。因为所有开发人员都按同一种方式去实现。

回想自己这段时间,有时候追求所谓的灵活性,其实是有炫技的因素在里面。编写基础库,更多的应该考虑它的效率和健壮性,能单元测试的地方一定要覆盖到。至于方法的实现,实现一种并把它做到最好吧。

将随想记录于此,希望自己少走弯路。

前端工程师们要开始忙乎了

今天看到一则消息:微软公布了2400不兼容ie8的站点,几乎所有的门户站都上榜了。如今ie是绝对主流的浏览器,对ie8的兼容是前端工程师们的必修课了。估计,不多久前端工程们都要开始忙碌了吧。

以前服务过的那些客户,也要找我麻烦了吧:D

 
Powered by Wordpress. Design by Bingo - The Web Design Experts.