Ember RESTAdapter不会伸出服务器

teh*_*wer 5 javascript ember.js ember-data

我正在编写我的第一个Ember应用程序,而这一刻,我正在尝试从我的API(使用Rabl在Rails中制作)中使用JSON,但RESTAdapater无效.它甚至没有伸出我的服务器!我得到了这段代码:

应用程序/适配器/ application.js中

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
  host: 'localhost:3000',
  namespace: 'api'
});
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ player.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')
});
Run Code Online (Sandbox Code Playgroud)

应用程序/路由/播放/ index.js

import Ember from 'ember';

export default Ember.Route.extend({
   model: function() {
    return this.store.find('player');
  }
});
Run Code Online (Sandbox Code Playgroud)

应用程序/路由/ players.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('player', params.player_id);
  }
});
Run Code Online (Sandbox Code Playgroud)

谁有想法?我想我已经妥善安排了所有人.

CONSOLE.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".
Run Code Online (Sandbox Code Playgroud)

小智 5

是的,ember-cli确实附带了目前构建的content-security-policy附加组件.

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

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


小智 2

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

如果您编辑config/environment.js以允许使用此资源,那么一切都会正常工作。去做这个:

在该代码之前的某个位置,return ENV;您应该找到以ENV.contentSecurityPolicy = {. 找到该行,在里面你应该会找到类似的内容:

ENV.contentSecurityPolicy = {
    'connect-src': "'self'",
    'style-src': "'self'",
    'script-src': "'self'",
    'img-src': "'self'"
}
Run Code Online (Sandbox Code Playgroud)

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

ENV.contentSecurityPolicy = {
    'connect-src': "'self' http://localhost:3000/*",
    ...
}
Run Code Online (Sandbox Code Playgroud)

Ember-cli 直接在他们的网站上更详细(而且更好)地讨论了这一点。