使用requires.js加载文本文件在Firefox中失败:“AccessControlException”

时间:2012-08-09 10:29:05

标签: javascript firefox requirejs

我正在使用requires.js 2.0。我有以下简化用例:

我的HTML文件:

<!DOCTYPE HTML>
<html>
<head>
    <title></title>
    <script type="text/javascript" data-main="apptest.js" src="../_js/libs/require/require.js"></script>
</head>
<body>

</body>
</html>

然后在apptest.js:

requirejs.config({
    paths: {
        'text': '../_js/libs/require/text'
    }
});

requirejs(
    ['text!boxes.html'],

    function (Boxes) {
        alert("done");
    }
);

好的,所以它并没有真正做多少,但足以说明问题。仅在Firefox(14.0.1)中,我收到异常“未捕获的异常:java.security.AccessControlException:access denied(java.io.FilePermission。\ boxes.html read)”。

因此,require.js成功加载了文本插件,但无法加载我的html文件,我希望稍后将其用作模板。在谷歌浏览器甚至IE9中,它的工作正常。我在Windows 7上。

我在本地网络服务器上运行它,所以没有文件:// ...请求。

我已经检查过,如果我在html文件上设置了任何特殊权限,但没有发现任何可疑的内容。

有人有想法吗?

更新:在Firefox 13.0.1中运行测试确实对我没有错误。那可能是,这是一个bug,已经在firefox 14中引入了吗?

1 个答案:

答案 0 :(得分:1)

我一分钟前遇到了同样的问题。我已经通过在main.js文件(你设置配置)中执行以下操作来修复它

之前

require.config({..... 

添加以下代码:

Packages = undefined;

这应该可以解决问题。

你应该有这样的东西:

Packages = undefined;

require.config({
    baseUrl: theAppBaseUrl,
    paths: {

基本上,解释是它试图使用Java来获取文件而不是ajax请求(无论出于何种原因)。这迫使它使用XHR对象来获取它。

干杯!