Ext.data.XmlReader读取外部文件时提示拒绝访问
2013-10-29 10:39
302 查看
异常提示:
ext-base.js拒绝访问
解决方案:
ext-base.js拒绝访问的异常,往往就是在静态html页面(使用extjs做原型设计很多都是先用html做页面的,而不是jsp)中使用了类似:dataUrl:'./js/data1.txt' 等的异步获取本地资源造成的!
ExtJs中看到 dataUrl url ----- 都是通过ajax异步获取服务器资源。
一旦涉及到ajax就需要配合服务器,ajax是无法从本地文件系统直接取得数据的。
解决方案:
1. 部署页面到apache或tomcat服务器上,重新测试;
2. 直接在js页面定义array数组,而不是引用本地文件,无需服务器就可以直接查看效果;
=================================================================================
示例:
a. 通过服务器读取服务器文件(通过服务器路径访问)
Ext.onReady(function(){
// 普通静态树
//创建Tree面板
var mytree=new Ext.tree.TreePanel({
el:'treeDiv', // 指定添加到的div
rootVisible:false,//是否显示根节点
loader:new Ext.tree.TreeLoader({ // 一旦涉及到ajax就需要配合服务器了,ajax是无法从本地文件系统直接取得数据的
dataUrl:'./js/data1.txt'
})
});
//创建根节点
var root = new Ext.tree.AsyncTreeNode({
text:'gen',
id:'root'
});
mytree.setRootNode(root);
//使这棵树显示在div标签中
mytree.render();
mytree.expand();
});
服务器文件data1.txt:
[{id:'1',text:'省份',leaf:false,children:[
{id:'2',text:'河南省',leaf:false,children:[
{id:'4',text:'南阳市',leaf:true},
{id:'5',text:'郑州市',leaf:true}]
},
{id:'3',text:'安徽省',leaf:false,children:[
{id:'6',text:'合肥市',leaf:true},
{id:'7',text:'蚌埠',leaf:true}]
}
]
}]
b. 读取js内自定义的数据(直接打开本地html就可以查看效果)
Ext.onReady(function(){
// 普通静态树
//创建Tree面板
var mytree=new Ext.tree.TreePanel({
el:'treeDiv', // 指定添加到的div
rootVisible:false,//是否显示根节点
loader:new Ext.tree.TreeLoader()
});
//创建根节点
var root = new Ext.tree.AsyncTreeNode({
text:'gen',
id:'root',
children:[{id:'1',text:'省份',leaf:false,children:[{id:'2',text:'河南省',leaf:false,children:[{id:'4',text:'南阳市',leaf:true},{id:'5',text:'郑州市',leaf:true}]},{id:'3',text:'安徽省',leaf:false,children:[{id:'6',text:'合肥市',leaf:true},{id:'7',text:'蚌埠',leaf:true}]}]}]
});
mytree.setRootNode(root);
//使这棵树显示在div标签中
mytree.render();
mytree.expand();
});
ext-base.js拒绝访问
解决方案:
ext-base.js拒绝访问的异常,往往就是在静态html页面(使用extjs做原型设计很多都是先用html做页面的,而不是jsp)中使用了类似:dataUrl:'./js/data1.txt' 等的异步获取本地资源造成的!
ExtJs中看到 dataUrl url ----- 都是通过ajax异步获取服务器资源。
一旦涉及到ajax就需要配合服务器,ajax是无法从本地文件系统直接取得数据的。
解决方案:
1. 部署页面到apache或tomcat服务器上,重新测试;
2. 直接在js页面定义array数组,而不是引用本地文件,无需服务器就可以直接查看效果;
=================================================================================
示例:
a. 通过服务器读取服务器文件(通过服务器路径访问)
Ext.onReady(function(){
// 普通静态树
//创建Tree面板
var mytree=new Ext.tree.TreePanel({
el:'treeDiv', // 指定添加到的div
rootVisible:false,//是否显示根节点
loader:new Ext.tree.TreeLoader({ // 一旦涉及到ajax就需要配合服务器了,ajax是无法从本地文件系统直接取得数据的
dataUrl:'./js/data1.txt'
})
});
//创建根节点
var root = new Ext.tree.AsyncTreeNode({
text:'gen',
id:'root'
});
mytree.setRootNode(root);
//使这棵树显示在div标签中
mytree.render();
mytree.expand();
});
服务器文件data1.txt:
[{id:'1',text:'省份',leaf:false,children:[
{id:'2',text:'河南省',leaf:false,children:[
{id:'4',text:'南阳市',leaf:true},
{id:'5',text:'郑州市',leaf:true}]
},
{id:'3',text:'安徽省',leaf:false,children:[
{id:'6',text:'合肥市',leaf:true},
{id:'7',text:'蚌埠',leaf:true}]
}
]
}]
b. 读取js内自定义的数据(直接打开本地html就可以查看效果)
Ext.onReady(function(){
// 普通静态树
//创建Tree面板
var mytree=new Ext.tree.TreePanel({
el:'treeDiv', // 指定添加到的div
rootVisible:false,//是否显示根节点
loader:new Ext.tree.TreeLoader()
});
//创建根节点
var root = new Ext.tree.AsyncTreeNode({
text:'gen',
id:'root',
children:[{id:'1',text:'省份',leaf:false,children:[{id:'2',text:'河南省',leaf:false,children:[{id:'4',text:'南阳市',leaf:true},{id:'5',text:'郑州市',leaf:true}]},{id:'3',text:'安徽省',leaf:false,children:[{id:'6',text:'合肥市',leaf:true},{id:'7',text:'蚌埠',leaf:true}]}]}]
});
mytree.setRootNode(root);
//使这棵树显示在div标签中
mytree.render();
mytree.expand();
});
相关文章推荐
- Repeater多层嵌绑定数值套遇到的问题
- java 使用hibernate访问sqlserver如何配置hibernate.cfg.xml
- 关闭防火墙
- Shell编程笔记
- jQuery 1.9,jQuery2.0 beta, Migrate插件的一些注意事項
- 【discuzx2】【家园广播】follow_feed.htm
- 编译内核linux-2.6.38 出现error (2013-03-28 10:42)
- Spring事务处理时自我调用的解决方案 嵌套AOP
- 提升基于英特尔®架构的 Android* 模拟器的速度
- VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
- MonetDB中文资料
- Oracle执行计划详解
- jQuery Ajax 处理 HttpStatus
- 自己做一个apk【a.反编译apk,得到源代码和资源文件】
- EXP-00091 Exporting questionable statistics
- 判断浏览器
- Linux Shell编程入门
- ListView实现自动滚动
- 三星首届全球开发者大会举行 发布5款工具包
- 阶梯教室的利用(DP)