2015-01-02 11 views
6

Come si imposta CORS sulle richieste di file di caratteri (o qualsiasi altra risorsa statica) sul server incorporato di ember-cli?Impostazione CORS per file statici su server ember-cli

Questo è il messaggio di errore appena per riferimento:

Font from origin 'http://some-domain:4200' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:61277' is therefore not allowed access. 
+0

Se riesco a elaborare, è possibile evitare CORS e richieste di preflight extra semplicemente utilizzando un CSP che consente in primo luogo le richieste di origine incrociata per l'applicazione. –

+0

@AndrewHacking francamente, questa è la prima volta che devo manipolare un CSP. Inoltre, sto incorporando la mia app ember all'interno di una già esistente che rende le cose più complicate. Fammi esaminare ancora un po '. – leojh

+0

Ho solo dovuto usare CORS quando non sono riuscito a impostare i criteri tramite CSP, motivo per cui mi sono concentrato su questo dato che hai detto che stai utilizzando la CLI di Ember per pubblicare la tua app. –

risposta

4

Aggiungere il seguente ENV in config/environment.js:

module.exports = function(environment) { 
    contentSecurityPolicyHeader: 'Content-Security-Policy', 
    contentSecurityPolicy: { 
     // ... other stuff here 
     'font-src': "'self' http://some-domain:4200", 
    }, 
} 
+0

In aggiunta a quanto sopra, credo che sia necessario impostare le intestazioni CORS come menzionato da munsellj –

+0

@Akshay Rawat, il server non di origine (ovvero non il server CLI di Ember) dovrà avere un'intestazione CORS per consentire al browser di accetta le risposte dal server. Questi altri server dovranno nominare le origini (o specificare un carattere jolly). Il server CLI ember in genere non serve i client da altre origini, quindi di solito non usa le intestazioni COR e semplicemente imposta le intestazioni CSP per il client browser che si sta sviluppando. Le intestazioni CSP sono una whitelist per consentire al browser di accedere ai siti non di origine come best practice per la produzione. CSP e COR lavorano da diversi lati del problema. –

1

Ho provato ad aggiungere le impostazioni CSP ma era infruttuoso per me. Ho ancora degli errori CORS per i file di font che fanno riferimento al CSS della mia app di Ember. In un altro post ho visto qualcuno menzionare ember-cli-cors che ho provato e sembrava risolvere il problema per me. Aggiunge solo le intestazioni CORS che consentono le richieste da tutte le risorse che è esattamente ciò di cui avevo bisogno per caricare tutte le risorse correttamente nel mio ambiente dev locale che serve le risorse delle app di Ember usando il comando integrato di ember-cli ember serve in un altro server di sviluppo locale che esegue un Applicazione Python che serve il mio index.html da Redis (stile ember-cli-deploy).