2014-04-10 14 views
14

Per il mio sistema di sviluppo locale sto tentando di offrire risorse front-end utilizzando grunt-contrib-connect. Ho bisogno di una soluzione interdominio per l'utilizzo di caratteri in Firefox. Il server funziona bene, ma non riesco a ottenere le intestazioni.middleware grunt-contrib-connect Soluzione CORS con keepalive true

Sto usando la versione 0.7.1 di grunt-contrib-connect.

connect: { 
     dev: { 
      options: { 
       port: '9001', 
       base: 'build', 
       hostname: 'localhost', 
       keepalive: true, 
       middleware: function(connect, options, middlewares) { 
        // inject a custom middleware into the array of default middlewares 
        // this is likely the easiest way for other grunt plugins to 
        // extend the behavior of grunt-contrib-connect 
        middlewares.push(function(req, res, next) { 
         req.setHeader('Access-Control-Allow-Origin', '*'); 
         req.setHeader('Access-Control-Allow-Methods', '*'); 
         return next(); 
        }); 

        return middlewares; 
       } 
      } 
     } 
} 

C'è un problema nell'utilizzo di keepalive con il middleware?

risposta

17

È triste che nessuno abbia risposto prima.

Il tuo codice appare come nella documentazione, ma aggiungi le intestazioni a req invece di res.

Il secondo problema è che i documenti si indurre in errore in(fixed) aggiungendo il middleware con .push. Il tuo codice non viene chiamato affatto, perché qualcosa prima sta facendo un res.end e/o non chiama next().

Il codice fisso sarebbe simile a questa:

middleware: function (connect, options, middlewares) { 
        // inject a custom middleware 
        middlewares.unshift(function (req, res, next) { 
         res.setHeader('Access-Control-Allow-Origin', '*'); 
         res.setHeader('Access-Control-Allow-Methods', '*'); 
         //a console.log('foo') here is helpful to see if it runs 
         return next(); 
        }); 

        return middlewares; 
       } 
+0

Grazie! Non l'avrei mai capito se non fosse stato per il tuo problema. https://github.com/gruntjs/grunt-contrib-connect/issues/114 –

+0

È confuso. Ho effettuato il debug e ho dovuto indovinare cosa succede: | Sono contento di aver aiutato! – naugtur

Problemi correlati