如何配置Ember的LSAdapter不查看根目录?

时间:2014-04-07 16:26:20

标签: javascript ember.js

我几乎已经完成了Ember TodoMVC示例,但我仍然不能使用local storage adapter。在我尝试使用本地存储适配器之前,我一直在运行该演示。这就是我application.js试图使用本地存储的原因:

window.Todos = Ember.Application.create();

Todos.ApplicationAdapter = DS.LSAdapter.extend({
  namespace: 'todos-emberjs'
});

当我用LSAdapter转出夹具适配器时,我收到了这个错误:

OPTIONS file:///todos net::ERR_FILE_NOT_FOUND 

所以,我在我的根目录中创建了文件todos(当然是根),现在我收到了这个错误:

OPTIONS file:///todos No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. jquery-1.10.2.js:8706
XMLHttpRequest cannot load file:///todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. index.html:1
Error while loading route: undefined ember-1.5.0.js:3521

那么,我怎样才能让适配器使用用户拥有的文件?

谢谢!

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我认为这是一个交叉浏览问题。与通过服务器直接在资源管理器中打开 index.html 文件相关的东西,因为我认为文件加载器正在使用带有AJAX的服务器调用。

OPTIONS file:///todos net::ERR_FILE_NOT_FOUND
    ...
    DS.RESTAdapter.DS.Adapter.extend.ajax
    ...

尝试使用服务器启动您的网站。这对我有用。

如果您需要快速服务器并且已经安装了PHP,则可以尝试打开终端并导航到 index.html 所在的文件夹(cd ..../todomvc左右)并且执行以下命令:

$ php -S localhost:5000

这将在 http:// localhost:5000 中启动一个简单的服务器,如果您导航到浏览器中的URL,则所有内容都可以作为魅力。

答案 1 :(得分:0)

这个问题是在几个月前,但也许我的解决方案可以帮助某人。

如果向RESTApplication Adapter添加正确的命名空间,可以设置正确目录的路径:

App.ApplicationAdapter = DS.RESTAdapter.extend({
    namespace: 'Ember/webshop'
});