diff --git a/src/Cors/index.js b/src/Cors/index.js index a8592f6..2b0e260 100644 --- a/src/Cors/index.js +++ b/src/Cors/index.js @@ -272,20 +272,16 @@ class Cors { ._setExposeHeaders(response) /** - * If request is not for OPTIONS call next. Otherwise set - * CORS headers. + * If request is OPTIONS set CORS headers before call next. */ - if (request.method() !== 'OPTIONS') { - await next() - return + if (request.method() === 'OPTIONS') { + this + ._setMethods(response) + ._setHeaders(request.header('access-control-request-headers'), response) + ._setMaxAge(response) } - this - ._setMethods(response) - ._setHeaders(request.header('access-control-request-headers'), response) - ._setMaxAge(response) - - response.header('Content-length', 0).status(204).send('') + return next() } } diff --git a/test/cors.spec.js b/test/cors.spec.js index 653e603..c998f24 100644 --- a/test/cors.spec.js +++ b/test/cors.spec.js @@ -353,10 +353,8 @@ test.group('Cors', () => { { key: 'Access-Control-Allow-Credentials', value: true }, { key: 'Access-Control-Allow-Methods', value: 'GET,PUT,POST' }, { key: 'Access-Control-Allow-Headers', value: 'Authorization' }, - { key: 'Access-Control-Max-Age', value: 90 }, - { key: 'Content-length', value: 0 } + { key: 'Access-Control-Max-Age', value: 90 } ]) - assert.equal(response._status, 204) }) test('set vary header when options.origin is a string', async (assert) => {