Ext.data.XmlReader读取外部文件时提示拒绝访问

本文介绍了解决ExtJS框架在本地环境中加载资源时出现的访问拒绝问题的方法。提供了两种解决方案:一是将项目部署到服务器上进行测试;二是直接在JavaScript中定义数据,避免使用本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常提示:

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();
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漏无语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值