2014-12-03 8 views
5

Sto scrivendo la mia prima app di Ember e in questo momento sto cercando di utilizzare JSON dalla mia API (realizzata in Rails con Rabl), ma RESTAdapater non funziona. Non raggiunge nemmeno il mio server! Ho ottenuto questo codice:Ember RESTAdapter non raggiungere il server

app/adattatori/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/percorsi/lettore/index. js

import Ember from 'ember'; 

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

app/rotte/players.js

import Ember from 'ember'; 

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

Chiunque idea? Penso di aver impostato tutto correttamente.

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

In realtà stai colpendo questi percorsi nell'URL? – Kingpin2k

+0

No, ho accesso con un link nella homepage '' {link-to 'Players' 'players'}} ''. – tehAnswer

risposta

2

ho intenzione di indovinare che si sta utilizzando brace-cli che viene fornito con un magazzino content-security-policy addon in questi giorni.

Se si modifica lo config/environment.js per consentire questa risorsa, le cose dovrebbero funzionare correttamente. Per fare ciò:

Da qualche parte in quel codice prima di return ENV; si dovrebbe trovare una riga che inizia con ENV.contentSecurityPolicy = {. Trova quella linea e dentro di te dovresti trovare qualcosa del tipo:

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

Se non riesci a trovarlo, crearlo. Quindi modificare il valore della chiave connect-src da includere anche http://localhost:3000/*. Utilizzando l'esempio precedente il nuovo file dovrebbe essere simile:

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

Sì brace-cli viene fornito con il content-security-policy aggiuntivo costruito in questi giorni.

Per garantire che sia possibile connettersi alla propria API quando si è in modalità di sviluppo, aggiungere questo snippet di seguito al seguente file config/environment.js e modificare di conseguenza il numero di porta.

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

+0

Questo ha funzionato per me. La risposta accettata suggerisce 'connect-src:" 'self' http: // localhost: 3000/* ",'. tuttavia il modificatore di caratteri jolly non ha funzionato come previsto. Grazie! :) – conciliator

Problemi correlati