Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

__marcosmaciel__

Access-Control-Allow-Origin

Recommended Posts

Boa tarde galera,

estou com uma probleminha aqui que é o seguinte..

eu tendo buscar os dados em ws(Web Service) via console do ele retorno tudo mais ai quando vou tentar com o meu ws ele retorno o erro

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

App.controller('ListaCtrl', function($scope, $http){
    $http.get('http://meuws/....').
        success(function (data) {
            $scope.ret= data;
        });
});

Me ajude aê =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O site de destino não implementa CORs. Vc consegue pedir para eles implementarem lá ? (adicionar o cabeçalho)

 

Se não, uma alternativa é escrever um proxy server-side do seu lado, ai o teu angular bater no teu proxy e o teu proxy que bate lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente você que tenha implementado o ws. Se sim, você pode adcionar o cabeçalho e funcionará corretamente. Caso contrário, não vejo solução, pois por segurança, os browser implementam proteção a CORs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Beuleal, a solução é fazer um proxy. Leia a minha resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tive esse problema, eu fiz um proxy, e liberei acesso externo: se for PHP segue...

http://leocaseiro.com.br/acesso-externo-php-ajax-crodomain/

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Ted k' / @William Bruno

Sua dica caiu como uma luva...

 

Engraçado que tentei de pelo .htaccess já que minha ideia inicial era acessar direto o .json do servidor.

Mas utilizei a 'ponte' e funcinou belezinha, fica o meu passo a passo caso alguem caia aqui pelo Google:

 

 

Acessar direto o json

return $http.get('http://seusite.com.br/dados.json');

Retornava este erro:

 

XMLHttpRequest cannot load http://seusite.com.br/dados.json.

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

 

 

Alterei para isto:

return $http.get('http://seusite.com.br/dados.php');

Com o seguinte conteúdo dentro do 'dados.php':

<?php
header ('Content-type: application/json; charset=UTF-8');
header('Access-Control-Allow-Origin: *');

$json_string = file_get_contents("dados.json");

print $json_string;

Obs: Sim eu sei o risco de utilizar * ... era apenas um exemplo de angular haha

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.