2014-12-03 7 views
5

Ich schreibe meine erste Ember App und in diesem Moment versuche ich, JSON von meiner API (in Rails mit Rabl gemacht) zu konsumieren, aber der RESTAdapater funktioniert nicht. Es reicht nicht einmal meinen Server aus! Ich habe diesen Code:Ember RESTAdapter erreichen nicht den Server

app/Adapter/application.js

import DS from 'ember-data'; 

export default DS.RESTAdapter.extend({ 
    host: 'localhost:3000', 
    namespace: 'api' 
}); 

app/models/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') 
}); 

app/Routen/Spieler/index. js

import Ember from 'ember'; 

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

app/Routen/players.js

import Ember from 'ember'; 

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

Jede Idee? Ich denke ich habe alles richtig eingerichtet.

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

Schlagen Sie tatsächlich diese Routen in der URL? – Kingpin2k

+0

Nein, ich greife mit einem Link auf der Homepage zu '' {link-to 'Players' 'players'}} ''. – tehAnswer

Antwort

2

ich Sie verwenden glut-cli erraten werde, die in diesen Tagen Aktie mit einem content-security-policy Addon kommt.

Wenn Sie die config/environment.js bearbeiten für diese Ressource die Dinge sollten gut funktionieren. Um dies zu tun:

Irgendwo in diesem Code vor return ENV; sollten Sie eine Zeile beginnend mit ENV.contentSecurityPolicy = { finden. Finden Sie diese Zeile und im Inneren sollten Sie etwas wie:

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

finden Wenn Sie es nicht finden können, erstellen Sie es. Ändern Sie dann den Wert des Schlüssels connect-src von, um auch http://localhost:3000/* einzuschließen.

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

Ember-cli speaks to this in greater (and far better) detail directly here on their site.

5

Ja glut-cli kommt mit dem content-security-policy Add-on in diesen Tagen gebaut: das obige Beispiel die neue Datei mit so etwas aussehen sollte.

Um sicherzustellen, dass Sie im Entwicklungsmodus eine Verbindung zu Ihrer API herstellen können, fügen Sie dieses Snippet unten zur folgenden Datei hinzu config/environment.js und ändern Sie Ihre Portnummer entsprechend.

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

+0

Das hat für mich funktioniert. Die angenommene Antwort schlägt 'connect-src: '' self 'http: // localhost: 3000/*", '. Der Platzhalter-Modifizierer funktionierte jedoch nicht wie erwartet. Vielen Dank! :) – conciliator

Verwandte Themen