Come è possibile aggiungere l'intestazione Access-Control-Allow-Origin: *
a tutte le risposte (in particolare, sono interessato ai file statici sotto /public/
) in Meteor? Avrei bisogno di questo in modo che le app web esterne possano accedere ai dati forniti dalla mia app Meteor. Ulteriori informazioni sull'attivazione di CORS is here.Come aggiungere intestazioni CORS a un'app Meteor?
risposta
Ecco un piccolo frammento che ho scritto. Puoi usare un esempio su come accedere al core connect di meteor e modificare le intestazioni, anche un buon drop-in per ogni progetto meteor:
/**
* HTTP Header Security
*
* enforce HTTP Strict Transport Security (HSTS) to prevent ManInTheMiddle-attacks
* on supported browsers (all but IE)
* > http://www.html5rocks.com/en/tutorials/security/transport-layer-security
*
* @header Strict-Transport-Security: max-age=2592000; includeSubDomains
*/
var connectHandler = WebApp.connectHandlers; // get meteor-core's connect-implementation
// attach connect-style middleware for response header injection
Meteor.startup(function() {
connectHandler.use(function (req, res, next) {
res.setHeader('Strict-Transport-Security', 'max-age=2592000; includeSubDomains'); // 2592000s/30 days
return next();
})
})
Grazie. Spero che questo venga votato come risposta ... implementazione molto più pulita. –
Con l'ultima versione di Meteor (0.8.2) è possibile utilizzare l'hook "WebApp.rawConnectHandlers'", vedere https://github.com/mizzao/meteor-timesync/blob/master/timesync-server.js – hiddentao
Ci sono due modi per farlo. Uno è quello di modificare il codice meteor e aggiungerlo (in modo che ogni file abbia questa intestazione). Questa potrebbe non essere una buona idea, perché non vuoi che ogni singolo file abbia questo. Ma se si modificano fino farlo con aggancio in applicazione
var app = __meteor_bootstrap__.app;
app.use(function(req,res) {
res.setHeader('access-control-allow-origin', '*');
});
L'altro è quello di utilizzare un percorso personalizzato con qualcosa come meteor router. In questo modo è possibile controllare quali file si desidera avere le intestazioni in modo che il suo probabilmente meglio usare qualcosa di simile
js lato server:
Meteor.Router.add('/yourfile.txt', function() {
this.response.setHeader('access-control-allow-origin', '*');
var fs = Npm.require("fs");
return fs.readFileSync("/public/yourfile.txt", "utf8");
});
Akshat, potrebbe leggere FileSync in questo caso è stato utilizzato per ridurre il codice? – matb33
Ottima idea! Ho scambiato il codice – Akshat
@akshat punto di chiarimento ... stai parlando di fare una modifica nel nucleo della meteora? da qualche parte intorno: https://github.com/meteor/meteor/blob/master/tools/server/server.js#L297 ? – zeroasterisk
- 1. Come aggiungere l'elemento in elenco a discesa di file cs
- 2. Aggiungere intestazioni a una richiesta nei binari
- 3. HttpModule per aggiungere intestazioni a richiesta
- 4. Come aggiungere intestazioni solo a file specifici con nginx
- 5. Come aggiungere intestazioni multiple con ok Http
- 6. NuGet può aggiungere un file .cs al progetto di destinazione?
- 7. Aggiungere intestazioni a richiesta spostate da ClientResource in Restlet
- 8. Come aggiungere intestazioni no-cache a tutto il sito a un'app MVC 3
- 9. In app meteor come aggiungere orgin = * in cordova config.xml?
- 10. CS-Script - Come posso eseguire un file ".cs" come un file eseguibile standard di Windows?
- 11. Come si aggiungono le intestazioni a dataTaskWithUrl?
- 12. Aggiungere intestazioni di richiesta con WebClient C#
- 13. Come aggiungere intestazioni delle colonne tabella per SQL SELECT
- 14. Come aggiungere più intestazioni nel client python websocket
- 15. Come aggiungere file sorgente e intestazioni esistenti al progetto CLIon
- 16. Come aggiungere intestazioni su chiamata RESTful utilizzando Jersey Client API
- 17. Come aggiungere intestazioni personalizzate alla classe SMTP System.Net.Mail?
- 18. Come aggiungere gli accessi del servizio esterno a un account già esistente in Meteor?
- 19. Come aggiungere un modello a corpo in Meteor all'interno di un pacchetto di
- 20. Come aggiungere intestazioni nella risposta HTTPContext in ASP.NET MVC 3?
- 21. Come aggiungere intestazioni SOAP al client Spring Jax-WS?
- 22. Come aggiungere intestazioni di sapone personalizzate in wcf?
- 23. Jersey 2.x: Come aggiungere intestazioni su RESTful Client
- 24. Come utilizzare l'interceptor per aggiungere intestazioni in Retrofit 2.0
- 25. Sopprime avviso Xml per file .cs ServiceReference
- 26. Come aggiungere e associare un file cs a una pagina ASCX/ASPX che non ha alrady uno?
- 27. Come aggiungere GestureListener ad un controllo in codice cs in silverlight?
- 28. Test A/B con Meteor
- 29. Come aggiungo intestazioni diverse a pagine diverse?
- 30. Aggiunta di intestazioni a Django EmailMultiAlternatives
Penso che sia impossibile nello stato attuale del core Meteor. Abbiamo sicuramente bisogno di un modo per personalizzare le intestazioni di 'HTTP'. – mquandalle
Non c'è nemmeno un modo hackish? Se volessi usare un fork di Meteor, cosa dovrei cambiare per questo? – Mitar
Suggerirei che la risposta di Thomas sia corretta, ora. Modo pulito per accedere al middleware di connessione senza pacchetto/hack di terze parti. –