Ajax Dojo通过xhrGet读取文件
我正在尝试运行这样一个xhrGet:Ajax Dojo通过xhrGet读取文件,ajax,file,dojo,local,Ajax,File,Dojo,Local,我正在尝试运行这样一个xhrGet: dojo.provide("test"); dojo.declare("test",null,{ getVersion: function(){ details = { url: "../version.txt", content: "test", handleAs: "text", timeout: 4000, load: function(data) {
dojo.provide("test");
dojo.declare("test",null,{
getVersion: function(){
details =
{
url: "../version.txt",
content: "test",
handleAs: "text",
timeout: 4000,
load: function(data)
{
console.log("result" + data);
},
error: function(error)
{
console.log("Error" + error);
}
}
var dfd = dojo.xhrGet(details);
return dfd;
});
我得到了这个错误:
错误:延迟取消:[异常…”组件返回的故障代码:0x80520012(NS错误文件未找到)[nsIXMLHttpRequest.send]“nsresult:”0x80520012(NS错误文件未找到)”位置:“JS帧::file:///C:/Dojo1.4.3/dojo/_base/_loader/bootstrap.js ::匿名::第1351行“数据:否]
file:///C:/Dojo1.4.3/dojo/_base/_loader/bootstrap.js
第0行
我试图检索的文件是相对于dojo的,因此位于Dojo1.4.3/version.txt下
其他注释。。。。我不是在服务器上运行它,我只是参考我创建的dojo类加载html文件
谢谢大家抽出时间
编辑
解决方案
我找到了解决办法
您需要在Firefox中启用此策略如果您的页面是通过
文件直接提供的,出于安全原因或类似原因,您无法执行AJAX请求。您需要设置一个HTTP服务器,并通过该服务器为您的页面提供服务
另外,您在这里使用旧版本的Dojo有什么特别的原因吗?当前版本是1.7如果您的页面是通过文件直接提供的,出于安全原因或诸如此类的原因,您不能执行AJAX请求。您需要设置一个HTTP服务器,并通过该服务器为您的页面提供服务
另外,您在这里使用旧版本的Dojo有什么特别的原因吗?当前版本是1.7我想用旧版本开发-我想你可以用AJAX加载文件,这是一种安全强制措施吗?抱歉,我找到了一种方法,这意味着这是可能的,而且你。。。错,首先,你只需要遵循以下步骤:这种事情不一定是跨浏览器的。只使用HTTP服务器更容易(如果安装了python,只需运行python-msimplehttpserver
就可以了)@missingno是正确的。你可以绕过安全问题,但你必须在其他浏览器和使用你的应用程序的其他人身上担心这一点。嗨,伙计们,是的,你所有的建议都是对的,但我只需要在FF中开发它,我不想使用服务器,因为我正在做简单的单元测试。我想用旧版本开发-我想你可以用AJAX加载文件,这是一种安全强制措施吗?抱歉,我找到了一种方法,这意味着这是可能的,而且你。。。错,首先,你只需要遵循以下步骤:这种事情不一定是跨浏览器的。只使用HTTP服务器更容易(如果安装了python,只需运行python-msimplehttpserver
就可以了)@missingno是正确的。你可以绕过安全问题,但你必须在其他浏览器和使用你的应用程序的其他人身上担心这一点。嗨,伙计们,是的,你所有的建议都是对的,但我只需要在FF中开发它,我不想使用服务器,因为我正在做简单的单元测试。