Ответ 1
Я попробовал приведенный ниже пример, но, конечно, заголовок появляется только на странице по умолчанию
Да, это потому, что вы определили его только для маршрута GET /
, а не для других путей. Вместо этого вы должны использовать промежуточное программное обеспечение.
Если вы хотите установить заголовок для всех запросов:
app.configure(function(){
app.use(function(req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
return next();
});
app.use(express.static(path.join(application_root, "StaticPages")));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
Если вы просто хотите сделать это для статических папок, общего метода нет. Вероятно, вы можете изменить express.static(который приходит из connect.static). Другой способ сделать это - сопоставить URL-адреса и задать заголовок, если URL-адрес сопоставлен.
app.configure(function(){
app.use(function(req, res, next) {
var matchUrl = '/StaticFolder';
if(req.url.substring(0, matchUrl.length) === matchUrl) {
res.setHeader("Access-Control-Allow-Origin", "*");
}
return next();
});
app.use(express.static(path.join(application_root, "StaticPages")));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
ПРИМЕЧАНИЕ. что промежуточное ПО должно быть до того, как маршруты будут действовать, другими словами, вы не можете поместить промежуточное программное обеспечение после статического промежуточного программного обеспечения.