Algum módulo para manipular requisições HTTP OPTIONS no nginx?

2

Estou usando o nginx no Ubuntu 12.04, existe algum módulo que eu possa instalar através do Gerenciador de Pacotes para fazer o nginx suportar magicamente solicitações de cabeçalho de OPÇÕES HTTP em vez de retornar o HTTP 405? Gostaria de evitar etapas adicionais de compilação, se isso puder ser ajudado.

    
por Aditya M P 25.08.2013 / 17:08

1 resposta

1

Eu ainda gostaria de uma solução real para isso, mas por enquanto, eu encontrei isso e estou usando a seguinte solução:

location / {
    if ($request_method = OPTIONS ) {
        add_header Content-Length 0;
        add_header Content-Type text/plain;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers 'origin, x-requested-with, content-type, accept';
        add_header Access-Control-Allow-Methods 'GET, POST';
        return 200;
    }
}

Estou permitindo que todas as solicitações CORS sejam meu localhost, mas tenha cuidado com isso para sua própria segurança e, portanto, não seja tão liberal com Access-Control-Allow-Origin .

Além disso, estou usando o angularjs e as solicitações POST foram canceladas mesmo depois que a solicitação OPTIONS foi limpa com as permissões adequadas. Não sei qual é o ponto de toda a coisa de preflight. De qualquer forma, adicionar as linhas de controle de acesso fora do bloco de localização fixa isso. Assim:

location / {
                try_files $uri $uri/ /index.php?$query_string;
                if ($request_method = OPTIONS ) {
                        add_header Content-Length 0;
                        add_header Content-Type text/plain;
                        add_header Access-Control-Allow-Origin *;
                        add_header Access-Control-Allow-Headers 'origin, x-requested-with, content-type, accept';
                        add_header Access-Control-Allow-Methods 'GET, POST';
                        return 200;
                }
        }

        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers 'origin, x-requested-with, content-type, accept';
        add_header Access-Control-Allow-Methods 'GET, POST';
    
por 26.08.2013 / 02:37