Skip to content

Problema com CORS e limitação de verbo http em endpoint #4

@brunobrandaosbx

Description

@brunobrandaosbx

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

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions