-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed
Description
Quando temos uma situação de CORS, o http sempre envia uma requisição de OPTIONS para aquela URL e em seguida lança a requisição que pedimos, POST por exemplo.
Neste caso o router não está tratanto o OPTIONS que chega inicialmente e então ele tenta executar o endpoint com o verbo OPTIONS e falha, pois o endpoint foi exportado apenas como POST.
Imagine que temos um endpoint com o seguinte exports:
exports = {
POST: {
helloPost: helloPost
}
}
Se chamarmos um POST com CORS neste endpoint, o router irá falhar quando a requisição chegar com o verbo OPTIONS.
Por enquanto estamos resolvendo isso adicionando um middleware que faz este controle, porém precisamos discutir a possibilidade de incorporar algo parecido com isso como uma configuração do módulo.
Exemplo do middleware utilizado:
// Headers necessários para funcionar com o CORS
router.addMiddleware(function (params, request, response) {
response.addHeader('Access-Control-Allow-Origin', '*')
response.addHeader('Access-Control-Allow-Headers', 'Content-Type')
response.addHeader('Access-Control-Allow-Credentials', 'true')
response.addHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
return request.method !== 'OPTIONS' //Só continuamos a cadeia caso não seja OPTIONS
})
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed