4

我正在使用 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:访问被拒绝(java.io.FilePermission .\boxes.html 读取)”。

因此,require.js 成功加载了文本插件,但未能加载我的 html 文件,我想稍后将其用作模板。在谷歌浏览器甚至 IE9 中它工作得很好。我在 Windows 7 上。

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

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

有人有想法吗?

更新:在 Firefox 13.0.1 中运行测试确实对我有用,没有错误。那么,这可能是 Firefox 14 中引入的错误吗?

4

1 回答 1

1

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

之前

require.config({..... 

添加以下代码:

Packages = undefined;

这应该可以解决问题。

你应该有这样的东西:

Packages = undefined;

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

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

干杯!

于 2012-08-10T00:14:16.967 回答