Dojo通过xhrGet读取文件

时间:2011-12-20 16:40:11

标签: 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) 
    { 
            console.log("result" + data); 
    }, 

    error: function(error) 
    { 
            console.log("Error" + error); 
    } 
} 

var dfd = dojo.xhrGet(details); 
return dfd; 

});

我收到此错误:

错误:延迟取消:[例外...“组件返回失败代码:0x80520012(NS_ERROR_FILE_NOT_FOUND)[nsIXMLHttpRequest.send]”nsresult:“0x80520012(NS_ERROR_FILE_NOT_FOUND)”location:“JS frame :: file:/// C :/Dojo1.4.3/dojo/_base/_loader/bootstrap.js :: anonymous :: line 1351“data:no] 文件:/// C:/Dojo1.4.3/dojo/_base/_loader/bootstrap.js 第0行

我试图检索的文件是相对于dojo的,因此位于Dojo1.4.3 / version.txt

其他注意事项....我没有在服务器上运行它,我只是加载html文件并引用我创建的dojo类。

谢谢大家的时间

修改

我找到了解决方案

https://developer.mozilla.org/en/Same-origin_policy_for_file%3a_URIs

您需要在Firefox中启用此政策

1 个答案:

答案 0 :(得分:4)

如果您的网页是通过file://直接投放的,出于安全原因或类似情况,您无法执行AJAX请求。您需要设置HTTP服务器并通过它来提供您的页面。

此外,您在这里使用旧版本的Dojo有什么特别的原因吗?目前的版本是1.7