【转载】说说JSON和JSONP,跨域请求原理

 前言:

由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。

当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须支持WebSocket,因此都不能算是ST2的原生解决方案,原生的只有AJAX。

说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。

但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。

JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。

既然随便聊聊,那我们就不再采用教条的方式来讲述,而是把关注重心放在帮助开发人员理解是否应当选择使用以及如何使用上。

继续阅读

尝试用PhoneGap来做Android应用,未来照浏览器

试了下,发现好麻烦,div+css又不是很懂,很多地方还是得自己写java代码来实现,多平台还是得改来改去。。。

如果你懂网页前台开发,后台不怎么懂,用这个开发倒是蛮适合的。。。

做了个未来照浏览器的新版,功能没旧版多,就比旧版好看了点。。。

有些界面问题,没时间去解决了,比如打开软键盘,页面会变形。。。

 

下载地址:http://dudibo.com/QIq

 

界面:

图标

图标

 

启动界面

启动界面

 

主界面

主界面

 

主界面

主界面

 

打开网页

打开网页

Vista及以上系统UAC权限问题

今天在Win8上测试了下我发布的程序,发现装在系统盘,读写一些文件会失败,一定要右键获取管理员权限才能使用。看来明天得升级所有的程序,在代码里请求管理员权限,这样就没问题了。如果你开启了UAC,那么会弹出对话框要求管理员权限;如果你关闭了UAC,那么就不会有提示,程序能直接获取到管理员权限。看来测试的还不够,最近发现了好几个问题了。。。大家多多测试吧,欢迎提意见!!!

C#在Vista及以上系统,申请管理员权限的方法

VS2010上的添加方法为,在可执行项目上右击,选择添加->新建项,然后选择应用程序清单文件,添加一个app.manifest文件,然后把 <requestedExecutionLevel  level=”asInvoker” uiAccess=”false” /> 这一行修改为 <requestedExecutionLevel  level=”requireAdministrator” uiAccess=”false” /> ,重新生成后,在Vista已以上系统运行时会弹出UAC对话框,请求管理员权限。