Require.js模板“仅支持HTTP的交叉源请求”错误

时间:2012-11-13 08:34:14

标签: javascript backbone.js requirejs

我一直在使用Require.js和Backbone.js等。我一直在尝试创建一个简单的待办事项应用程序,我在桌面上双击index.html并在浏览器中显示它并使用它。

但是,当通过Require.js获取模板时,它会给我以下错误:

XMLHttpRequest cannot load file:///C:/bada/js/templates/headerTemplate.html. Cross origin requests are only supported for HTTP.

我知道这种情况正在发生,因为我没有从服务器那里做请求。我知道在Chrome中,可以通过在启动Chrome时使用一些参数来抑制此错误,但我还打算通过在本地运行index.html来在我的手机上使用此应用。

是否有任何方法可以防止此错误发生并让应用程序正常工作?

2 个答案:

答案 0 :(得分:2)

使用Google Chrome,您可以使用标记--allow-file-access-from-files来执行此操作。这样它就可以访问您的本地文件系统。

我建议您更改Chrome图标的属性并默认启用该标记。其他浏览器可能有类似的东西,但我不知道。

答案 1 :(得分:1)

简答:不。

更长的答案:查看应用程序缓存。

在构建应用程序之前不要这样做。但是在构建之后,如果你设置了一个离线缓存并利用localStorage(如果需要),它应该运行在最受欢迎的手机/平板电脑/笔记本电脑/ PC上。

但就像我说的那样, 不要 设置你的缓存清单,直到 之后 你准备好了冻结所有文件数据。
它在缓存数据方面做得非常好,这很棒......但是如果你对任何文件进行更改,那么使缓存无效以下载最新版本,使用新东西重置缓存真的很痛苦...

...如果你喜欢每隔5分钟按CTRL + S,就像我一样,只是为了安全...... ......如果你想看到行动中的微观变化,你就会头疼。