Eu descobri algumas situações (especialmente o design de API) em que se torna realmente útil permitir que outros hosts façam solicitações ajax entre sites.
A solicitação normal de ajax (mesmo site) executa quando você a chama, mas as solicitações de cross site ajax executam OPÇÕES primeiro e verifica alguns cabeçalhos fornecidos.
O Access-Control-Allow-Origin verifica de onde o servidor permite solicitações, usando um * permite que você deixe todos passarem.
É assim que você o habilita usando o Nginx:
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS';
add_header 'Access-Control-Max-Age' '1728000';
add_header 'Content-Type' 'text/plain; charset=UTF-8';
return 200;
}
}