Ember RESTAdapter 不要联系服务器



我正在编写我的第一个Ember应用程序,这一刻,我正在尝试从我的API中使用JSON(在Rails中使用Rabl制作),但是RESTAdapater不起作用。它甚至没有到达我的服务器!我得到了这个代码:

应用程序/

适配器/应用程序.js

import DS from 'ember-data';
export default DS.RESTAdapter.extend({
  host: 'localhost:3000',
  namespace: 'api'
});

应用/模型/播放器.js

import DS from 'ember-data';
export default DS.Model.extend({
  name: DS.attr('string'),
  heightFormatted: DS.attr('string'),
  heightCm: DS.attr('number'),
  weightLb: DS.attr('number'),
  weightKg: DS.attr('string'),
  birthplace: DS.attr('string'),
  birthdate: DS.attr('string'),
  neoId: DS.attr('number'),
  position: DS.attr('string'),
  number: DS.attr('string')
});

应用/路由/播放器/索引.js

import Ember from 'ember';
export default Ember.Route.extend({
   model: function() {
    return this.store.find('player');
  }
});

应用/路线/播放器.js

import Ember from 'ember';
export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('player', params.player_id);
  }
});

有人知道吗?我想我已经正确设置了。

控制台.log

[Report Only] Refused to connect to 'http://localhost:3000/api/players' because it violates the following Content Security Policy directive: "connect-src 'self' ws://localhost:35729 ws://0.0.0.0:35729".

是的,ember-cli确实附带了这些天内置的内容安全策略附加组件。

若要确保在开发模式下可以连接到 api,请将下面的代码段添加到以下文件config/environment.js,并相应地更改端口号。

ENV.contentSecurityPolicy = { 'connect-src': "'self' http://localhost:3000" }

我猜你正在使用 ember-cli,它现在附带了一个内容安全策略插件。

如果您编辑config/environment.js以允许此资源,则一切应该可以正常工作。 为此:

return ENV;之前的代码中的某个地方,您应该找到一行以 ENV.contentSecurityPolicy = { 开头的行。 找到那一行,里面你应该找到类似的东西:

ENV.contentSecurityPolicy = {
    'connect-src': "'self'",
    'style-src': "'self'",
    'script-src': "'self'",
    'img-src': "'self'"
}

如果找不到,请创建它。 然后将connect-src键的值从 更改为也包括 http://localhost:3000/* 。 使用上面的示例,您的新文件应如下所示:

ENV.contentSecurityPolicy = {
    'connect-src': "'self' http://localhost:3000/*",
    ...
}

Ember-cli直接在他们的网站上更详细(也更好)地谈到了这一点。

最新更新