Boa tarde,
Estou tentando acessar um webservice externo através de uma requisição ajax. Quando defino o dataType como json, ocorre o seguinte erro: "Failed to load http://10.86.69.254:9090/WebServiceUnimedPG/rest/api/retornaBeneficiarioDaGuia/154875228: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fluigteste.unimedpg.com.br' is therefore not allowed access."
Vi em alguns tutoriais da totvs que JSONP pode ser a solução.. Mas quando defino o dataType como JSONP, retorna o erro: "Uncaught SyntaxError: Unexpected token :". Porem a consulta é feita.
Como faço pra pegar este resultado??
Boa tarde Jonathan, esse 'Access-Control-Allow-Origin' é um erro do navegador, onde o mesmo bloqueia a chamada aos serviços. Para corrigir isso é necessário alterar as configurações de CORS do servidor que disponibiliza os serviços, e também retornar uma propriedade no header do serviço.
Se o servidor dos serviços estiver utilizando Tomcat, basta adicionar estas tags (de configuração do CORS) no arquivo de configuração 'web.xml' do tomcat:
CorsFilter
org.apache.catalina.filters.CorsFilter
cors.allowed.origins
<em>
cors.support.credentials
false
CorsFilter
/</em>
</p>
E no header do Response do serviço deve adicionar a propriedade "Access-Control-Allow-Origin" com o valor "*".
Isso faz com que o navegador permita acessar os serviços.
Obrigado Jean, é exatamente o que eu precisava.