httpCorsHandler function
Implementation
void httpCorsHandler(bool? enabled, HttpRequest req) {
CORSConfig cors = Dox().config.cors;
if (!(enabled ?? cors.enabled)) return;
HttpResponse res = req.response;
/// call each one directly, no map per request.
/// null values are skipped inside `_setCorsValue`.
if (cors.origin is List) {
/// the answer depends on the request Origin, so caches must know it.
res.headers.add(HttpHeaders.varyHeader, 'Origin');
}
_setCorsValue(
res,
HttpHeaders.accessControlAllowOriginHeader,
corsAllowOrigin(cors.origin, req.headers.value('origin')),
);
_setCorsValue(res, HttpHeaders.accessControlAllowMethodsHeader, cors.methods);
_setCorsValue(res, HttpHeaders.accessControlAllowHeadersHeader, cors.headers);
_setCorsValue(
res,
HttpHeaders.accessControlExposeHeadersHeader,
cors.exposeHeaders,
);
_setCorsValue(
res,
HttpHeaders.accessControlAllowCredentialsHeader,
cors.credentials,
);
_setCorsValue(res, HttpHeaders.accessControlMaxAgeHeader, cors.maxAge);
}