我有一个Node应用程序,其中包含许多我从JavaScript / AJAX调用的端点。我之前通过在与JavaScript文件相同的域上托管的PHP代理解决了跨源资源共享问题,但我想切断中间人并从AJAX直接转到Node。
我现在已经在Node应用程序上广泛启用了CORS,通过:
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");
next();
});
但这暴露了所有端点,包括我希望保持与特定域绑定的端点。我可以为每个端点专门设置CORS吗?
答案 0 :(得分:1)
而不是:
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");
next();
});
你可以使用:
app.use('/some/endpoint', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
如果您需要更多控制该方法,例如如果你想要用于GET的CORS而不是用于PUT或类似的东西,那么你也可以在添加标题之前检查请求对象。