我有一个静态项目,我正在尝试虚拟种子 JSON文件,但它只允许我通过GET访问它们.这是我的grunt配置文件,有谁知道我将如何允许POST? module.exports = function(grunt) { // Configure grunt.config.set('co
          module.exports = function(grunt) {
    // Configure
    grunt.config.set('connect', {
        server: {
            options: {
                hostname: '*',
                middleware: function(connect) {
                    return [
                        function(request, response, next) {
                            response.setHeader('Access-Control-Allow-Origin', '*');
                            response.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
                            response.setHeader('Access-Control-Allow-Headers', 'Content-Type');
                            return next();
                        },
                        connect.static(require('path').resolve('.'))
                    ];
                }
            }
        }
    });
    // Load Task
    grunt.loadNpmTasks('grunt-contrib-connect');
};
 这是我的解决方案,希望可以帮到你,我只检查base [0],你可以扩展它. 
  
 重要的是使用:middlewares.unshift,而不是推
connect: {
  dev: {
    options: {
      // 经过测试 connect插件会依照base的定义顺序检索文件
      // 这意味着如果存在相同文件,定义在前面的会优先返回
      base: ['app', '.'],
      port: 8888,
      // open: true,
      livereload: true,
      hostname: 'localhost',
      middleware: function (connect, options, middlewares) {
        var fs = require('fs');
        var path = require('path');
        var support = ['POST', 'PUT', 'DELETE'];
        middlewares.unshift(function (req, res, next) {
          // 单独处理POST请求 请求的地址必须是文件 这里没有进行rewrite处理
          if (support.indexOf(req.method.toUpperCase()) != -1) {
            var filepath = path.join(options.base[0], req.url);
            if (fs.existsSync(filepath) && fs.statSync(filepath).isFile()) {
              return res.end(fs.readFileSync(filepath));
            }
          }
          return next();
        });
        return middlewares;
      },
    }
  }
}
        
             