2014-04-10 3 views
14

Для моей локальной системы разработки я пытаюсь обслуживать внешние интерфейсы с помощью grunt-contrib-connect. Мне нужно междоменное решение для использования шрифтов в Firefox. Сервер работает отлично, но я не могу получить заголовки.промежуточное ПО grunt-contrib-connect Решение CORS с keepalive true

Я использую версию 0.7.1 из 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; 
       } 
      } 
     } 
} 

Есть ли проблема с использованием keepalive с промежуточным программным обеспечением?

ответ

17

Грустно, что никто не ответил на это ранее.

Ваш код выглядит точно так же, как в документации, но вы добавляете заголовки в req вместо res.

Вторая проблема заключается в том, что документы вводят вас в заблуждение в(fixed) добавив ваше промежуточное программное обеспечение с .push. Ваш код вообще не вызывается, потому что что-то перед этим делает res.end и/или не вызывает next().

Ваш фиксированный код будет выглядеть следующим образом:

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

Спасибо! Я никогда бы не подумал об этом, если бы не твоя проблема. https://github.com/gruntjs/grunt-contrib-connect/issues/114 –

+0

Это сбивает с толку. Я отлаживал его и должен был догадываться, что происходит: | Рад, что я помог! – naugtur

Смежные вопросы