title: How to enable cross-origin resource sharing (CORS) in the express.js framework on node.js
body: <p>I'm trying to build a web server in node.js that will support cross-domain scripting, while still providing static files from a public directory. I'm using the express.js and am not really sure how to allow cross-domain scripting (<code>Access-Control-Allow-Origin: *</code>).</p>
  
  <p>I saw <a href="https://stackoverflow.com/questions/7067966/how-to-allow-cors-in-express-nodejs">this post</a>, which I did not find helpful.</p>
  
  <pre><code>var express = require('express')
    , app = express.createServer();
  
  app.get('/', function (req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "X-Requested-With");
      next();
  });
  
  app.configure(function () {
      app.use(express.methodOverride());
      app.use(express.bodyParser());
      app.use(app.router);
  });
  
  app.configure('development', function () {
  
      app.use(express.static(__dirname + '/public'));
      app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
  });
  
  app.configure('production', function () {
  
  
      var oneYear = 31557600000;
      //    app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
      app.use(express.static(__dirname + '/public'));
      app.use(express.errorHandler());
  });
  
  app.listen(8888);
  console.log('express running at http://localhost:%d', 8888);
  </code></pre>