CORS (Cross-Origin Resource Sharing)

Como utilizar as APIs desenvolvidas em seu ambiente através de um ambiente externo.

Em algumas situações, pode ser necessário que você acesse as suas APIs diretamente de outro domínio, por exemplo, de um portal de internet hospedado em um domínio "https://www.mydomain.com", acessando via AJAX uma API de seu ambiente "https://myapp.inpaas.com".

Por segurança, o seu navegador de Internet irá bloquear essa request. Para que isso não ocorra você deverá declarar os headers do CORS em sua API.

A API do RESTService permite que você declare esses headers através do método setResponseProcessor, veja abaixo:

RESTService.setResponseProcessor(function(response) {
    // Setting the domain which can perform the requisition by the CORS
    response.addHeader("Access-Control-Allow-Origin", "http://www.mydomain.com");
     
    // Setting the HTTP methods allowed by the CORS
    response.addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
     
    // Setting the headers that will be sent/received via CORS
    response.addHeader("Access-Control-Allow-Headers", "Content-Type");
       
});

Não esqueça de habilitar o acesso anônimo a sua API, ou inclua uma forma de autenticação.

O código acima é um código de exemplo, você deverá fazer as modificações adequadas para funcionar em seu projeto.

  • O domínio "http://www.mydomain.com" deverá ser alterado para o(s) domínio(s) que serão utilizados para fazer a requisição em questão.

  • Os métodos "GET, POST, OPTIONS" devem ser alterados pelos métodos que serão utilizados em sua integração. Sempre inclua o método OPTIONS, pois é utilizado por padrão no protocolo.

  • O header "Content-Type" é apenas um exemplo de Header, caso você necessite utilizar outros Headers na sua requisição, você deve declará-los.

Links

https://www.w3.org/TR/cors/
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS