我正在编写我的第一个Ember应用程序,这一刻,我正在尝试从我的API(使用Rabl在Rails中制作)中使用JSON,但RESTAdapater无法正常工作。它甚至没有伸出我的服务器!我得到了这段代码:
应用/适配器/ application.js中
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'localhost:3000',
namespace: 'api'
});
应用/模型/ 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')
});
应用/路由器/播放器/ index.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('player');
}
});
应用/路由/ players.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('player', params.player_id);
}
});
有人有想法吗?我想我已经妥善安置了。
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".
答案 0 :(得分:5)
是的,ember-cli确实附带了这些天内制作的content-security-policy插件。
要确保在处于开发模式时可以连接到api,请将下面的代码段添加到以下文件config/environment.js
并相应地更改端口号。
ENV.contentSecurityPolicy = {
'connect-src': "'self' http://localhost:3000"
}
答案 1 :(得分:2)
我猜你现在正在使用ember-cli,这些日子里有content-security-policy个插件。
如果编辑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 speaks to this in greater (and far better) detail directly here on their site.