近日学习ext 3.0,仿照官网的例子写了一个html页面,页面中用grid组件请求并显示远程的xml格式的数据。结果发现在IE中浏览正常,但在FF中仅仅显示grid界面,但数据未成功加载。初步判断是FF的安全机制默认不允许本地html页面(浏览地址栏中以file:///开头)请求外部的绝对连接。于是上网找了半天,找到以下解决办法:
在创建grid的方法内部加入如下两条语句:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalFileRead");
之后在FF中运行会首先弹出两次对话框,直接点yes后发现远程数据已经正常加载了。
另:想把这两条语句封装成一个方法以备复用,但发现无效,只能将这两条语句直接写在发出请求的方法内。具体原理待查证。
FF官方的相关文档如下:
http://www.mozilla.org/projects/security/components/jssec.html#debughash