如何在node.js的express.js框架中启用跨域资源共享(CORS)

我正在尝试在node.js中构建Web服务器,以支持跨域脚本编写,同时仍从公共目录中提供静态文件。我正在使用express.js,但我不确定如何允许跨域脚本(Access-Control-Allow-Origin: *)。


我看到了这篇文章,但对我没有帮助。


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);


叮当猫咪
浏览 1302回答 3
3回答

jeck猫

我用这个:var app = express();app.use(function(req, res, next){    res.header('Access-Control-Allow-Origin', '*');    res.header('Access-Control-Allow-Headers', 'X-Requested-With');    next();}).options('*', function(req, res, next){    res.end();});h.readFiles('controllers').forEach(function(file){  require('./controllers/' + file)(app);});app.listen(port);console.log('server listening on port ' + port);此代码假定您的控制器位于controllers目录中。此目录中的每个文件应如下所示:module.exports = function(app){    app.get('/', function(req, res, next){        res.end('hi');    });}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Node.js