配置服务器端CORS:ExpressJS不存在“Access-Control-Allow-Origin”

时间:2016-04-08 14:19:41

标签: javascript node.js express cors

非常简单,只是尝试完成对基本ExpressJS服务器的CORS请求。以前没有太多处理ExpressJS的经验,但是经历了几个类似的问题,我看不出问题。看起来我没有在正确的位置添加所需的标题,因为Chrome错误表明那里什么都没有。

app.configure = function () {
    app.use(function(req, res, next) {
        res.header('Access-Control-Allow-Origin', '*');
        res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
        res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
        next();
    })
}

这段代码不正确吗?我是否将客户端和服务器端代码混淆了?此外,服务器是我的,所以我试图确保服务器可以正确响应CORS请求,而不是使用代理来欺骗它。

1 个答案:

答案 0 :(得分:0)

根据您使用的快速版本,app.configure可能不再可用。

所以你应该直接使用它:

 app.use(function(req, res, next) {
        res.set('Access-Control-Allow-Origin', '*');
        res.set('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
        res.set('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
        next();
 })

或者如文档中所述,如果要设置多个标题

res.set({
 'header1' : 'Foobar',
 'header2' : 'Foobar'
});