Skip to content

Commit 984af02

Browse files
authored
fix: auto reply to OPTIONS requests only when unhandled (#4559)
Prior to this change the internal options middleware always responsed to such requests. This is because the middleware was registered too early and was not being used as a fallback. With this change we register this middleware as the last middleware to ensure that this is only used as a fallback when OPTIONS requests are not handled. Closes #4551
1 parent 85dcb31 commit 984af02

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

lib/Server.js

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,32 +2131,6 @@ class Server {
21312131
});
21322132
}
21332133

2134-
{
2135-
/**
2136-
*
2137-
* @param {Request} req
2138-
* @param {Response} res
2139-
* @param {NextFunction} next
2140-
* @returns {void}
2141-
*
2142-
*/
2143-
const optionsRequestResponseMiddleware = (req, res, next) => {
2144-
if (req.method === "OPTIONS") {
2145-
res.statusCode = 204;
2146-
res.setHeader("Content-Length", "0");
2147-
res.end();
2148-
return;
2149-
}
2150-
next();
2151-
};
2152-
2153-
middlewares.push({
2154-
name: "options-middleware",
2155-
path: "*",
2156-
middleware: optionsRequestResponseMiddleware,
2157-
});
2158-
}
2159-
21602134
middlewares.push({
21612135
name: "webpack-dev-middleware",
21622136
middleware:
@@ -2411,6 +2385,28 @@ class Server {
24112385
});
24122386
}
24132387

2388+
// Register this middleware always as the last one so that it's only used as a
2389+
// fallback when no other middleware responses.
2390+
middlewares.push({
2391+
name: "options-middleware",
2392+
path: "*",
2393+
/**
2394+
* @param {Request} req
2395+
* @param {Response} res
2396+
* @param {NextFunction} next
2397+
* @returns {void}
2398+
*/
2399+
middleware: (req, res, next) => {
2400+
if (req.method === "OPTIONS") {
2401+
res.statusCode = 204;
2402+
res.setHeader("Content-Length", "0");
2403+
res.end();
2404+
return;
2405+
}
2406+
next();
2407+
},
2408+
});
2409+
24142410
if (typeof this.options.setupMiddlewares === "function") {
24152411
middlewares = this.options.setupMiddlewares(middlewares, this);
24162412
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy