Comunidad de diseño web y desarrollo en internet

error cabecera CORS

Citar            
MensajeEscrito el 09 May 2017 12:50 pm
Estoy intentando recibir un json de la api de google, para ello utilizo una url

escribió:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&type=restaurant&keyword=cruise&key= KEY

(en KEY tengo una key api)

Con esta url si la pego directamente en el navegador me devuelve el json, pero si lo intento por codigo y guardar el json me da error

Google escribió:

Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&type=restaurant&keyword=cruise&key=KEY (razón: falta la cabecera CORS 'Access-Control-Allow-Origin')


Lo estoy realizando de esta manera.

Código Javascript :

$( document ).ready(function() {iniciar();});
        function iniciar()
        {
            var myjson;
            $.getJSON("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&type=restaurant&keyword=cruise&key= KEY", function(json){
            myjson = json;
            });
        }

Por Borja1234

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2017 12:52 am

Por solisarg

BOFH

13380 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 May 2017 06:12 am
soliarg eso de same origin-policy es el mensaje que envia la consola web si tiene una web proteccion de eso y hace un embed en esa pagina, eso tambien lo puedes controlar con php mediante -->
if($_SERVER['HTTP_REFERER']=='aqui pones la web de origen')){
//codigo html
}else{exit;}

Por aukun

Claber

199 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 May 2017 04:10 pm
Sorry, no te entiendo aukun.
En cuanto al api de maps, en la version 3 te pide referrers, pero podes dejarlo en blanco desde la consola y en teoría acepta pedidos desde cualquier lado. Opcionalmente podés agregar tu IP a ver si te sigue dando problemas. Si tenés opción de backend haces la consulta con PHP o lo que uses y anda sin problemas.

Jorge

Por solisarg

BOFH

13380 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 May 2017 07:08 pm
a ver si lo entiendo cuando yo hago un embed a www.google.es me genera en consola el siguiente error -->
Load denied by X-Frame-Options: https://www.google.es/?gws_rd=ssl does not permit cross-origin framing.

y eso sucede con todas las paginas de google excepto las que son de por si embeds , entre ellas el traductor, logicamente los videos y mapas embed ...
eso quiere decir que cuando hago curl mediante php para pillar codigo ->

Código PHP :

function ex(){/*v-s011*/$A=func_get_args();$url=$A[0];if((func_num_args()==1)&&($A[0]=='@')){}else{$ch = curl_init();curl_setopt($ch, CURLOPT_USERAGENT,  "Mozilla/5.0 (rv:53.0) Gecko/20100101 Firefox/53.0");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $url);$output = curl_exec($ch);curl_close($ch);return $output;}}
echo ex('http://www.google.com');

Supongo que los mapas que se puede hacer embed si se puede, sin embargo desde las que no da el error ->
302 Moved
The document has moved here.

es decir que me detecta curl si lo paso por browser y me detecta que estoy utilizando curl por lo que me aparece un link para iniciar google pero sin curl por browser, mientras que desde consola bash curl-> google outputea codigo muy similar al del buscador pero evidentemente diferente porque detecta que es CLI y no GUI, que es el mismo codigo que saca el servidor google que outputea cuando utilizamos w3m o lynx desde terminal bash, otra cosa curiosa es que adicionando al codigo php el puerto correspondiente para tor y privoxy lo acoplo a php mediante ->
curl_setopt($ch, CURLOPT_PROXY, "localhost:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

segun que pais pilles la ip proxy el hecho de pillar codigo funciona en unos paises en otros no
yo supongo que deben utilizar variables servidor desde su propio lenguaje, python o golang en php lo pillariamos en el array $_SERVER alli detecta si es gui o cli si utilizas curl o w3m o firefox incluso el sistema operativo incluso desde que pagina has linkeado para llegar a esa pagina.

Por aukun

Claber

199 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 May 2017 10:50 am
Si haces un proxy con cualquier lenguaje de back-end ya no tienes el problema, solo afecta a código cliente.

Jorge

Por solisarg

BOFH

13380 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.