ekit-cross-site

ekit package, support cross site manager

npm install ekit-cross-site
8 downloads in the last month

ekit-cross-site

Problem

You may face the problem with Access-Control-Allow-Origin when you want to call API on cross domain. Here is the simple solution for that.

Usage

Require ekit-cross-site module before all other API defination and put the list of allow site as below

Note: only use with expressjs

...
var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  ...
});

require('ekit-cross-site')(app, ['http://127.0.0.1:9000', 'http://0.0.0.0:9000']);
...

How does it look like

var config = {
    allow: ['http://127.0.0.1:9000', 'http://0.0.0.0:9000']
};

module.exports = function(app, allowList) {
    // allow
    config.allow = allowList;
    // allow request
    app.all('/*', function(req, res, next) {
        var isPass = false;
        for (var i in config.allow) {
            if (req.headers.origin === config.allow[i]) {
                isPass = true;
            }
        };
        if (isPass === true) {
            res.header('Access-Control-Allow-Origin', req.headers.origin);
            res.header('Access-Control-Allow-Methods', '*');
            res.header('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept');
        };
        return next();
    });
}
npm loves you