Hola,
estoy tratando de crear un fichero php alojado en un dominio con https para que haga una llamada a otro servidor http a traves del puerto 1234. Lo he intentado con $ajax jsonp y con curl y en todos los casos me dice que el contenido es bloqueado.
Las pruebas con POSTMAN y poniendo la url directamente en el navegador funcionando.
Pero hay algo más en el PHP que no funciona.
¿Que puedo estar haciendo mal?
Os pongo el ejemplo de curl
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
echo 'kaka aa';
$ch = curl_init("http://aquipongolaweballamar.net:1234"); // initialize curl handle
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_PORT, 1234);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Return the result to a variable
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_NOSIGNAL, 3);
// Fail on errors?
curl_setopt($ch, CURLOPT_FAILONERROR, 3);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 3);
// Timeout after X seconds
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$data = curl_exec($ch);
$http_status_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
print($data);
echo 'status;'.$http_status_code;
El servidor donde alojas ese fichero, ¿permite conexiones externas hacia ese puerto?
Saludos
Te refieres a si tengo abierto el puerto 1234 en el router?
Si no lo permitiese entonces con el POSTMAN no funcionaria y tampoco funcionaria si pongo la url directamente en el navegador ¿no?
si uso JSONP me pasa lo mismo
<script>
$.ajax({
type: 'GET',
url: 'http://aqupongolaweb.net:1234',
data: { algunaVariable: 'algunDato' },
dataType: "jsonp",
crossDomain: true,
cache:false,
success: function(data){
// Lo que tenga que hacer cuando se reciben los datos
alert('ok');
},
error:function(error){
// Lo que tenga que hacer cuando no se reciben los datos
alert('nook');
}
});
</script>
Mod: No hacer doble post. Usar el botón "Modificar".
CitarInsertar Cita
Te refieres a si tengo abierto el puerto 1234 en el router?
Si no lo permitiese entonces con el POSTMAN no funcionaria y tampoco funcionaria si pongo la url directamente en el navegador ¿no?
No.
Me refiero a si el servidor donde alojas el archivo PHP con el que intentas hacer el CURL, permite conexiones hacia fuera y más específicamente, conexiones a otros puertos. Es muy común que ciertos hostings capen conexiones hacia puertos raros.
Citarsi uso JSONP me pasa lo mismo
Para ajax debes permitir CORS.
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
¿De todos modos, que es lo que exactamente te devuelve CURL?
Saludos
Cita de: #!drvy en 9 Diciembre 2020, 17:00 PM
Me refiero a si el servidor donde alojas el archivo PHP con el que intentas hacer el CURL, permite conexiones hacia fuera y más específicamente, conexiones a otros puertos. Es muy común que ciertos hostings capen conexiones hacia puertos raros.
Llevas razón no se permite conexiones hacia fuera.
Gracias