Graças à origem cruzada do CORS, o AJAX se tornou muito fácil e indolor.
Mas quando começo a brincar com APIs, geralmente descubro que eles não definem os cabeçalhos e também não fornecem uma solução alternativa para JSONP .
Ignorando opções mais dolorosas, isso deixa a possibilidade de usar o Yahoo Query Language ou criar seu próprio proxy personalizado em algum servidor usando node.js, Ruby, PHP ou qualquer outro.
Mas há outra opção ainda mais confortável:
CORSProxy.com permite que você faça proxy de todas as solicitações HTTP que desejar e fornece a resposta com o cabeçalho CORS adequado, para que seu navegador não grite com você.
Como exemplo, a API de posição do Open Notify ISS não possui JSONP (até onde eu posso dizer) e CORS no momento da redação deste artigo.
Usando CORSProxy, você ainda pode obter os dados diretamente do lado do cliente:
$.getJSON(" http://www.corsproxy.com/api.open-notify.org/iss-now/v1/", function(response) {
console.log(response);
});
Indolor, rápido e fácil.
Nota: Não use isso para informações confidenciais. Contanto que você brinque com os dados disponíveis publicamente, tudo bem. Se você for usá-lo em um sistema de produção, será derrotado. Se você tiver algo não público ou um sistema de “produção real ao vivo”, escreva seu próprio pequeno proxy para ele. Esse método é considerado uma maneira rápida de se intrometer em APIs públicas.