JavaScript的一个问题:XMLHttpRequest可以加载本地数据么,怎么加载?还是只能加载网络文件数据?

functionloadModel(){varrequest=newXMLHttpRequest();request.open("GET","CeilingLight_s... function loadModel(){
var request = new XMLHttpRequest();
request.open("GET","CeilingLight_single.json");
request.onreadystatechange = function(){
if(request.readyState == 4){
handleLoadedModel(JSON.parse(request.responseText));
}
}
request.send();
}
其中的CeilingLight_single.json是位于桌面的工作目录的模型文件
调试的时候出现如下错误:Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
展开
 我来答
120694861
推荐于2017-09-09 · TA获得超过340个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:92.5万
展开全部
永远不可能是本地工作目录文件,必须让服务器给予权限才行,比如在本地搭建Apache服务器,就算是 localhost/xxx/xxx 都行,因为服务器已经给远程访问配置了权限。。。

如果能够调用本地文件的话,那么目前所有浏览器的 JS 不都可以轻轻松松扫描你的硬盘了?

这是浏览器的权限限制,就算是Flash需要调用本地文件的时候,也需要经过用户的允许,你可以去查阅各种脚本语言的本地数据权限,目前Flash和HTML5都有一部分权限,但仅限于浏览器的安全沙箱内操作~
mr19830707
2012-11-27 · TA获得超过209个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:195万
展开全部
可以加载本地数据。 只要路径对就行。
你的错误是你没有搞清楚 对象的作用域。 在onreadystatechange回调方法中, 访问不到request对象吧。 你的代码中,request对象是loadModel的成员。 其作用域只在这个方法中有效。在onreadystatechange中 访问不到的。

可以把这个方法作为一个全局变量来定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2b817f1e4
2012-11-26 · 超过76用户采纳过TA的回答
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:41.9万
展开全部
这条指令:
var request = new XMLHttpRequest();

request:一般作为全局变量
不放在 function 内声明
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmh2072005
2012-11-28 · TA获得超过194个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:89万
展开全部
本地装个服务器 iis 、Apache等 通过服务器地址就可以访问了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式