Skip to content

Commit d8d0f07

Browse files
authored
Merge pull request #3005 from IntersectMBO/fix/enable-metadata-api-cors
fix: add dynamic CORS middleware to handle cross-origin requests
2 parents 4c209c2 + 2f48a4c commit d8d0f07

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

tests/test-metadata-api/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ const swaggerJsdoc = require('swagger-jsdoc');
88
const app = express();
99

1010

11+
12+
const dynamicCors = (req, res, next) => {
13+
const origin = req.headers.origin
14+
15+
// Allow requests from any origin but with credentials
16+
res.header('Access-Control-Allow-Origin', origin || '*');
17+
res.header('Access-Control-Allow-Methods', 'GET,PUT,OPTIONS');
18+
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
19+
res.header('Access-Control-Allow-Credentials', 'true');
20+
21+
// Handle preflight requests
22+
if (req.method === 'OPTIONS') {
23+
res.sendStatus(200);
24+
} else {
25+
next();
26+
}
27+
};
28+
1129
const dataDir = process.env.DATA_DIR || path.join(__dirname, 'json_files');
1230

1331
if (!fs.existsSync(dataDir)) {
@@ -31,6 +49,9 @@ const swaggerOptions = {
3149

3250
const swaggerSpec = swaggerJsdoc(swaggerOptions);
3351

52+
// cors enable
53+
app.use(dynamicCors);
54+
3455
// Serve Swagger UI
3556
app.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
3657

0 commit comments

Comments
 (0)