Habilite CORS em uma aplicação
Adicione regras na fase de resposta que enviam headers CORS para requisições GET, POST e HEAD, requisições complexas ou uma lista de origens permitidas.
Você pode habilitar Cross-Origin Resource Sharing (CORS) em uma aplicação pelo Azion Console, com regras na fase de resposta do Rules Engine para Applications. Cada seção cria uma regra que adiciona headers CORS às respostas da aplicação.
CORS usa headers HTTP para dar a um user agent acesso a recursos em um servidor de origem diferente do servidor do documento atual. Por exemplo, uma página HTML servida pelo domínio A requisita uma folha de estilo CSS ou um arquivo JavaScript do domínio B. Por motivos de segurança, a maioria dos navegadores bloqueia as requisições HTTP cross-origin que scripts iniciam. Os headers CORS de uma resposta indicam ao navegador quais dessas requisições permitir.
Uma requisição que usa GET, POST ou HEAD precisa apenas do header Access-Control-Allow-Origin na resposta. Qualquer outra requisição pode ser considerada complexa. O mesmo vale para uma requisição que envolve vários parâmetros, headers, autenticação, um corpo de requisição ou outra configuração especializada. Uma requisição complexa precisa de headers adicionais.
Pré-requisitos
- Uma aplicação que um workload entrega, com uma regra que envia as requisições dela para uma origem. Para criar os dois, consulte Primeiros passos com Applications.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Permita requisições cross-origin GET, POST e HEAD
A regra desta seção adiciona Access-Control-Allow-Origin: * às respostas de todo caminho que começa com /your-uri. O valor * permite que uma página de qualquer origem leia essas respostas. Substitua /your-uri pelo caminho que recebe as requisições cross-origin.
Para criar a regra pelo Azion Console:
Acesse Azion Console > Applications > sua aplicação.
Na seção General, insira GET/POST/HEAD CORS em Name.
Em Description, insira Allows CORS for GET requests in /your-uri.
Na seção Phase, selecione Response Phase. A fase de uma regra não pode mudar depois que você cria a regra.
Na seção Criteria, selecione ${uri} como variável e starts_with como operador.
Insira /your-uri como argumento.
Na seção Behaviors, selecione o behavior que adiciona um header de resposta. A API o chama de add_response_header.
Insira Access-Control-Allow-Origin: * como argumento do behavior.
A regra aparece na aba Rules Engine, em Response. As respostas aos caminhos que começam com /your-uri carregam Access-Control-Allow-Origin: *. Para o formato que o argumento de um header usa, consulte Add Request Header.
Permita requisições cross-origin complexas
Uma requisição complexa precisa de mais headers do que Access-Control-Allow-Origin. A regra desta seção permite o método OPTIONS nos caminhos que começam com /your-uri. Os headers dela também cobrem requisições GET, POST e HEAD para esses caminhos. A regra adiciona estes cinco headers a cada resposta:
Para criar a regra pelo Azion Console:
Acesse Azion Console > Applications > sua aplicação.
Na seção General, insira OPTIONS CORS em Name.
Em Description, insira Allows CORS for OPTIONS requests in /your-uri, as well as non-complex requests.
Na seção Phase, selecione Response Phase. A fase de uma regra não pode mudar depois que você cria a regra.
Na seção Criteria, selecione ${uri} como variável e starts_with como operador.
Insira /your-uri como argumento.
Na seção Behaviors, selecione o behavior que adiciona um header de resposta. A API o chama de add_response_header.
Insira Access-Control-Allow-Origin: * como argumento do behavior.
Para cada header restante da lista, selecione + Add Behavior. Selecione o mesmo behavior e insira o header como argumento dele.
A regra aparece na aba Rules Engine, em Response. As respostas aos caminhos que começam com /your-uri carregam os cinco headers.
Para permitir outros tipos de requisição, altere os valores de Allow, Access-Control-Allow-Methods e Access-Control-Allow-Origin. Para definir o formato da resposta, adicione um header Content-Type à mesma regra.
Permita requisições cross-origin de origens específicas
A regra desta seção adiciona os headers CORS apenas quando uma requisição vem de uma de três origens. Ela lê o header de requisição Origin pela variável ${http_origin}, com um critério por origem, unidos por Or. Substitua as três origens pelas que a sua aplicação aceita:
Uma regra que permite origens específicas exige Application Accelerator na aplicação.
Para ativar Application Accelerator pelo Azion Console:
Acesse Azion Console > Applications > sua aplicação.
Na seção Modules, ative Application Accelerator.
A aplicação executa com Application Accelerator ativado. Ativar um Produto pode gerar custos relacionados ao uso. Para mais informações, consulte Preços.
A regra adiciona os mesmos cinco headers de uma regra para requisições complexas:
Para criar a regra pelo Azion Console:
Acesse Azion Console > Applications > sua aplicação e selecione a aba Rules Engine.
Na seção General, insira Multiple origins CORS em Name.
Na seção Phase, selecione Response Phase. A fase de uma regra não pode mudar depois que você cria a regra.
Na seção Criteria, selecione ${http_origin} como variável e is_equal como operador.
Insira http://www.example.com como argumento.
Para cada origem restante, selecione Or. Selecione ${http_origin} e is_equal de novo e insira a origem como argumento.
Na seção Behaviors, selecione o behavior que adiciona um header de resposta. A API o chama de add_response_header.
Insira Access-Control-Allow-Origin: * como argumento do behavior.
Para cada header restante da lista, selecione + Add Behavior. Selecione o mesmo behavior e insira o header como argumento dele.
A regra aparece na aba Rules Engine, em Response. Uma resposta carrega os cinco headers apenas quando o header Origin da requisição corresponde exatamente a uma das três origens. Para saber como os critérios se combinam com And e Or, consulte Condicionais.