Foros del Web » Programando para Internet » Javascript »

AJAX Cross Domain

Estas en el tema de AJAX Cross Domain en el foro de Javascript en Foros del Web. Hola, necesito hacer un XMLHttpRequest a un dominio externo, pero tras buscar información he descubierto que por motivos de seguridad, AJAX no lo permite. También ...
  #1 (permalink)  
Antiguo 31/10/2011, 13:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta AJAX Cross Domain

Hola, necesito hacer un XMLHttpRequest a un dominio externo, pero tras buscar información he descubierto que por motivos de seguridad, AJAX no lo permite. También lo he intentado con Ajax Cross Domain, y aqui ya me da un error mucho mas extraño. Bueno para empexar la petición se la realizo a
http://megaskipper.com/vbb1.aspx
url a la que enviandole en la variable text un codigo de videobb, te devuelve un link a un flv para asi poder reproducirlo en un reproductor cualquiera y sin limitaciones. La funcion que realiza esto viene dada por ejemplo en http://megaskipper.com/videobb.html?text=rzwqLSx4eVeA :

Código:
myUrl = "rzwqLSx4eVeA"
mvurl = "/vbb1.aspx?text=" + myURL;

var xhr;
xhr = null;
if (window.XMLHttpRequest)
{
	xhr = new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
	xhr = new ActiveXObject("Microsoft.XMLHTTP")
}	

//alert(xhr);
if (xhr == null)
{
	alert("Your browser doesn't support XMLHttp, Please upgrade");
}	

xhr.open("GET", mvurl, true);
xhr.send(null);
var resp;
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
	{
	    if (xhr.status == 200)
	    {
 			resp = xhr.responseText;
 			var len = resp.length;
	        if (len > 0)
	        {
				myURL = resp;
				dispVid();

		   }
		else
		{
		alert("Megaskipper server overloaded, Please re-try");
 	     }
}
	 	}
Con Ajax Cross Domain hago lo siguiente:

Código:
<script type="text/javascript" src="http://www.ajax-cross-domain.com/cgi-bin/ACD/ACD.js?uri=(http://173.192./vbb1.aspx?text=rzwqLSx4eVeA)"></script>
<script type="text/javascript">
 document.write(ACD.responseText);
</script>
lo que me devuelve el error:

Código:
AJAX Cross Domain discovered that you cannot perform the remote request. 
The query-string after ACD.js must be set as an allowed query-string in the 
configuration area of ACD.js.

¿Qué puedo hacer, podría solucionar el error con Ajax Cross Domain o tendría que hacerlo todo de otra forma o con otro método?

Gracias por vuestra atencion!
  #2 (permalink)  
Antiguo 31/10/2011, 13:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: AJAX Cross Domain

¿has probado con jsonp?.

aunque la mejor manera de hacer ello es usando un script del lado del server como puente, es decir, tu server como puente utilizando cURL, soap, u otro medio
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 31/10/2011, 14:19
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: AJAX Cross Domain

No, la verdad que he visto por algun foro lo de usar jsonp pero la verdad es que no sabía ni que existía, asi que decidí buscar alguna que otra alternativa que me resultase más facil.

Con ajax cross domain me salta ese error y del lado del server he utilizado file_get_contents() pero no funciona, no se por que la verdad debe ser algun filtro o medida de seguridad del lado de ellos. Ahora mismo voy a probar con Curl y comento.
  #4 (permalink)  
Antiguo 31/10/2011, 14:25
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: AJAX Cross Domain

Con cUrl me devuelve lo mismo que si entro en la direccion a la que quiero hacer el XMLHttpRequest por el explorador, se puede ver por uno mismo:

http://megaskipper.com/vbb1.aspx?text=rzwqLSx4eVeA

Respuesta: "try again"
  #5 (permalink)  
Antiguo 31/10/2011, 14:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: AJAX Cross Domain

Con JSONP lo mismo :S
  #6 (permalink)  
Antiguo 31/10/2011, 15:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: AJAX Cross Domain

entonces ya no es problema de tu código, es el server remoto el que está devolviendo try again, ¿seguro de que ese servicio soporta peticiones HTTP, no has investigado a ver si lo que espera es un SOAP, o WSDL?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 13/05/2012, 19:22
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Respuesta: AJAX Cross Domain

JNabster me gustaria saber si tuviste suerte con tu XMLHttpRequest a un dominio externo, he probado el ACD.js y me salia ese error que mencionas, pero ya lo solucione...
La solucion, fue descargar el archivo fuente, aumentar el url que deseas acceder en las configuraciones, subirlo en tu server en esta ruta /cgi-bin/ACD/ACD.js, ponerle permisos de ejecucion y redireccionar la llamada a este js en el codigo de tu pagina.

Actualmente yo estoy tratando de hacer lo mismo de XMLHttpRequest, pero me faltan algunas cosas
  #8 (permalink)  
Antiguo 13/05/2012, 19:54
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: AJAX Cross Domain

Cita:
Iniciado por dmonium Ver Mensaje
JNabster me gustaria saber si tuviste suerte con tu XMLHttpRequest a un dominio externo, he probado el ACD.js y me salia ese error que mencionas, pero ya lo solucione...
La solucion, fue descargar el archivo fuente, aumentar el url que deseas acceder en las configuraciones, subirlo en tu server en esta ruta /cgi-bin/ACD/ACD.js, ponerle permisos de ejecucion y redireccionar la llamada a este js en el codigo de tu pagina.

Actualmente yo estoy tratando de hacer lo mismo de XMLHttpRequest, pero me faltan algunas cosas
No se ha fijado de que el tema tema de más de 6 meses?!, no reviva temas muertos, además no puede hacer peticiones a servidores remotos con el XmlHttpRequest por la limitación de acceso a solo el mismo Dominio.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 13/05/2012, 20:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: AJAX Cross Domain

Hola, la verdad es que ya hace tiempo de esto, suerte que tenía activa la subscripción por mail y me ha llegado la notificación al correo... xD

Yo lo solucioné con cUrl, el error que mencioné aquí me lo daba porque la página que intentaba conseguir tenía una especie de protección que solo mostraba la información a las peticiones html que tenían como referente su pagina web (de ahí el "try again"). Por suerte encontré la forma de hacerle pensar que esto era así: El HTTP_REFERER de cUrl permite que las peticiones simulen tener como referente cualquier página. Siento no poder ser de más ayuda . Un saludo!
  #10 (permalink)  
Antiguo 13/05/2012, 20:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 6
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: AJAX Cross Domain

Cita:
Iniciado por maycolalvarez Ver Mensaje
No se ha fijado de que el tema tema de más de 6 meses?!, no reviva temas muertos, además no puede hacer peticiones a servidores remotos con el XmlHttpRequest por la limitación de acceso a solo el mismo Dominio.
Hay alternativas al XmlHttpRequest. Una de ellas es Ajax Cross Domain. Funciona, pero tenía algunas limitaciones (que también tendrán su solución, pero yo no legué a adentrarme tanto).

Etiquetas: ajax, cross, domain, xmlhttprequest
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:45.