我正在使用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中引入了吗?
答案 0 :(得分:1)
我一分钟前遇到了同样的问题。我已经通过在main.js文件(你设置配置)中执行以下操作来修复它
之前
require.config({.....
添加以下代码:
Packages = undefined;
这应该可以解决问题。
你应该有这样的东西:
Packages = undefined;
require.config({
baseUrl: theAppBaseUrl,
paths: {
基本上,解释是它试图使用Java来获取文件而不是ajax请求(无论出于何种原因)。这迫使它使用XHR对象来获取它。
干杯!