配置服务器端CORS:ExpressJS No“;访问控制允许起源”;在场

Configure server-side CORS: ExpressJS No "Access-Control-Allow-Origin" is present

本文关键字:许起源 起源 在场 访问控制 CORS 服务器端 ExpressJS No 配置      更新时间:2024-04-03

非常简单,只需尝试完成对基本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请求,而不是使用代理来欺骗它

根据您使用的express版本,app.config可能不再可用。

所以你应该像这样直接使用它:

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