¿Cómo llamar a una URL externa en jquery?

Estoy tratando de poner comentarios en el muro de Facebook usando jquery.

Pero mi llamada ajax no deja de url externa.

¿Alguien puede explicar cómo podemos usar la URL externa con jquery?

a continuación está mi código:

var fbUrl="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; $.ajax({ url: fbURL , data: "message="+commentdata, type: 'POST', success: function (resp) { alert(resp); }, error: function(e){ alert('Error: '+e); } }); 

está dando el error xmlhtttprequest.

¡Todas estas respuestas son incorrectas!

Como dije en mi comentario, la razón por la que recibe ese error porque la URL falla la ” misma política de origen “, pero aún puede usar la función AJAX para acceder a otro dominio, consulte la respuesta de Nick Cravers sobre esta pregunta similar :

Necesita activar el comportamiento JSONP con $ .getJSON () agregando & callback =? en la cadena de consulta, así:

 $.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?", function(data) { doSomethingWith(data); }); 

Puedes probarlo aquí.

Sin utilizar JSONP, está aplicando la misma política de origen que bloquea el XmlHttpRequest para recuperar datos.

Con esto en mente, el siguiente código debería funcionar:

 var fbURL="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; $.ajax({ url: fbURL+"&callback=?", data: "message="+commentdata, type: 'POST', success: function (resp) { alert(resp); }, error: function(e) { alert('Error: '+e); } }); 

JQuery y PHP

En el archivo PHP “contenido.php”:

  

En html:

   Get Google 

es un problema de scripting entre sitios . Los navegadores modernos comunes no permiten enviar solicitudes a otra url.

google the javascript misma política de origen

En pocas palabras, la URL que está tratando de usar debe tener la misma raíz y protocolo. por lo que http://yoursite.com no puede acceder a https://yoursite.com o http://anothersite.com

¿DEBE omitir esta protección (que está en el nivel del navegador, como galimy señaló), considere el módulo ProxyPass para su servidor web favorito.

Creo que la única forma es mediante el uso de código PHP internel como lo sugieren MANOJ y Fernando.

curl post / get in php file en su servidor -> llame este archivo php con ajax

El archivo PHP digamos (fb.php):

 $commentdata=$_GET['commentdata']; $fbUrl="https://graph.facebook.com/16453004404_481759124404/comments?access_token=my_token"; curl_setopt($ch, CURLOPT_URL,$fbUrl); curl_setopt($ch, CURLOPT_POST, 1); // POST data here curl_setopt($ch, CURLOPT_POSTFIELDS, "message=".$commentdata); // receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec ($ch); echo $server_output; curl_close ($ch); 

Que usar AJAX GET para

 fb.php?commentmeta=your comment goes here 

de tu servidor

O haz esto con HTML y JavaScript simples desde el servidor externel:

 Message:    

Hola url debería estar llamando a una función que a cambio dará respuesta

 $.ajax({ url:'function to call url', ... ... }); 

intente usar / llamar al método facebook API

Siga los pasos simples a continuación podrá obtener el resultado

Paso 1- Crea una función interna getDetailFromExternal en tu back-end. paso 2- En esa función, llama a la url externa usando cUrl como la función siguiente

  function getDetailFromExternal($p1,$p2) { $url = "http://request url with parameters"; $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true )); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $output = curl_exec($ch); curl_close($ch); echo $output; exit; } 

Paso 3- Llame a esa función interna desde su interfaz utilizando javascript / jquery Ajax.