O que é Cors?
CORS é um padrão W3C, que significa "Compartilhamento de recursos entre origens". Ele permite que o navegador faça requisições XMLHttpRequest para servidores cross-origin, superando assim a limitação de que o AJAX só pode ser usado homogeneamente.
1. Introdução
O CORS exige suporte tanto para navegador quanto para servidor. Atualmente, todos os navegadores suportam esse recurso, e o navegador IE não pode ser inferior a IE10.
Todo o processo de comunicação do CORS é concluído automaticamente pelo navegador e não requer participação do usuário. Para os desenvolvedores, a comunicação CORS não é diferente da comunicação AJAX homologada, e o código é exatamente o mesmo. Assim que o navegador percebe que uma requisição AJAX cruza a origem, ele adiciona automaticamente algumas informações adicionais no cabeçalho, e às vezes mais uma solicitação, mas o usuário não percebe.
Portanto, a chave para alcançar a comunicação CORS é o servidor. Desde que o servidor implemente a interface CORS, ele pode se comunicar entre fontes.
Na verdade, programas de servidor web (como ASP.NET ou PHP, etc.) não conseguem distinguir e não gerenciam se uma requisição Http recebida é uma requisição Ajax entre domínios.O CORS foi projetado para resolver esse problema, e o padrão CORS personalizado do W3C oferece aos navegadores um mecanismo para permitir requisições Ajax entre domínios.
2: Código nativo de solicitação JS Ajax
Como não quero referenciar o jQuery, encapsulei os seguintes métodos com js, da seguinte forma:
O Ajax solicita testes de interface e encontra um erro conforme segue:
Três: Definir um método controlador para permitir múltiplas áreas
Mais ou menosTodos são permitidosO método controlador ou API é multidomínio, no arquivo web.configsystem.webServerA seguinte configuração é adicionada sob o nó:
O que foi dito acima não é o resultado que queríamos! Se quisermos permitir que apenas um nome de domínio acesse uma de nossas interfaces entre domínios, precisamos definir uma funcionalidade que se pareça com esta:
O código para definir permissões de acesso entre domínios é este parágrafo HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origem);
Definimos as características sobre o método controlador da seguinte forma:
Iniciamos novamente a solicitação Ajax com o resultado mostrado abaixo:
Recursos de interface API de nossos outros sites podem ser acessados com sucesso.
(Fim)
|