CORS 不允许在 apache2 服务器上提供静态文件
CORS wont allow serving static files on apache2 server
我有一个快速服务器,允许前端从数据库中获取信息,它运行良好。 Cors 设置了前端白名单,但是尝试获取图像(已经上传并保存)除了 500 错误外没有任何结果。我尝试禁用 cors 并且它工作正常但是任何来源都可以做一些我不希望这个网站做的事情。我使用带代理的 apache 并启用 proxy_http mod,因此它可以访问 pm2 上的 express js 服务器 运行。服务器 js 上的代码:
const whiteList=['domain.com'];
const corsOptions = {
origin:function(origin, callback){
if(whiteList.indexOf(origin) !== -1){
callback(null, true);
} else{
callback(new Error('Not allowed by CORS'));
}
}
}
app.use(cors(corsOptions));
我什至尝试在 apache 中设置 cors headers,但它不起作用,因为它仍然允许 origins 而不是 listes。
所以我可以通过这样做来解决这个问题:
app.use(cors({origin: "https://example.com", allowedHeaders: ["Authorization", "Content-Type"]}));
实际发现的问题是服务器没有发回所有 cors headers,包括:Access-Control-Allow-Headers,它正在塞满所有内容。
这似乎可能是 cors 包的一个错误,它的参数在它们自己的 object 中设法弄乱了服务器返回的内容,所以现在它看起来有点难看。
我什至遵循了 cors 文档所说的内容,但是,这导致了更多奇怪的问题。
我有一个快速服务器,允许前端从数据库中获取信息,它运行良好。 Cors 设置了前端白名单,但是尝试获取图像(已经上传并保存)除了 500 错误外没有任何结果。我尝试禁用 cors 并且它工作正常但是任何来源都可以做一些我不希望这个网站做的事情。我使用带代理的 apache 并启用 proxy_http mod,因此它可以访问 pm2 上的 express js 服务器 运行。服务器 js 上的代码:
const whiteList=['domain.com'];
const corsOptions = {
origin:function(origin, callback){
if(whiteList.indexOf(origin) !== -1){
callback(null, true);
} else{
callback(new Error('Not allowed by CORS'));
}
}
}
app.use(cors(corsOptions));
我什至尝试在 apache 中设置 cors headers,但它不起作用,因为它仍然允许 origins 而不是 listes。
所以我可以通过这样做来解决这个问题:
app.use(cors({origin: "https://example.com", allowedHeaders: ["Authorization", "Content-Type"]}));
实际发现的问题是服务器没有发回所有 cors headers,包括:Access-Control-Allow-Headers,它正在塞满所有内容。
这似乎可能是 cors 包的一个错误,它的参数在它们自己的 object 中设法弄乱了服务器返回的内容,所以现在它看起来有点难看。
我什至遵循了 cors 文档所说的内容,但是,这导致了更多奇怪的问题。