onRequest method
Implementation
@override
FutureOr<HttpControllerBehavior> onRequest(HttpRequest request) {
if (!allowedMethods.contains(request.method)) {
request.response.methodNotAllowed();
return HttpControllerBehavior.revoke();
}
final corsHeaders = {
'Access-Control-Expose-Headers': [exposeHeaders],
'Access-Control-Allow-Credentials': ['$allowCredentials'],
'Access-Control-Allow-Origin': allowedOrigins.toList(),
'Access-Control-Max-Age': [maxAge.inSeconds.toString()],
'Access-Control-Allow-Headers': [allowedHeaders.join(',')],
'Access-Control-Allow-Methods': [allowedMethods.join(',')],
};
for (final header in corsHeaders.entries) {
request.response.headers.set(header.key, header.value);
}
if (request.method == 'OPTIONS') {
request.response.statusCode = 204;
request.response.close();
return HttpControllerBehavior.revoke();
}
return HttpControllerBehavior.next();
}