https y xmlhttprequest


([N4] Infortic) #1

Hola.

Estoy intentando hacer un get a una URL:

https://192.168.0.47/nrk/status.php?reader=off

La petición tiene usuario y contraseña.

Si la ejecuto desde el navegador con:

https://usuario:password@192.168.0.47/nrk/status.php?reader=off

Funciona.

Si la ejecuto desde un front end php (que genera un header de tipo “Authorization:Basic tokenGeneradoconuserypassword”)

Funciona.

Pero desde velneo con xmlhttprequest no funciona.

  • Ni poniendo la URL con la autorización.
  • Ni asignándole el header con setRequestHeader
  • Ni pasandole al método open el user y el pass.

¿ Alguien sabe si hay algún problema con ésto ?
¿ Me falta algo ?

Ejemplo de código:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://192.168.0.47/nrk/status.php?reader=on', 0);
xhr.setRequestHeader('Authorization','Basic cm9vdDppbXBpbmo=');
xhr.send();
alert(xhr.errorCode);

Agradezco cualquier ayuda por adelantado


([N4] Infortic) #2

El error que obtengo siempre es el 6

La comunicación SSL/TLS ha fallado y la comunicación encriptada no se puede establecer


([N4] Infortic) #3

Haciendo curl.exe -k http://user:pass@url

También funciona


([N1] vgegeo) #4

En la ayuda todos los ejemplos en la instruccion xhr.open('GET', 'https://192.168.0.47/nrk/status.php?reader=on', 0); el ultimo parametro utilizan o true o false.
Tu utilizas un numero, ¿puede tener algo de relacion?


([N3] pacosatu) #5

Hola Infortic.

Atendiendo al error devuelto, el errorCode = 6, parece que es un problema con las librerías SSL instaladas en el sistema y que Velneo debe cargar cuando usamos el protocolo https.

No lo sé exactamante, pero debe haber una manera de comprobar que las librerías se han instalado correctmente y que Velneo puede acceder a ellas.

Consúltalo en soporte y nos lo cuentas.

Saludos
Paco Satué


([N1] vgegeo) #6

La verdad es que ciñiendose al error, aparentemente sería eso, pero no tiene mucho sentido que el resto de peticiones probadas si funcionen bajo https, y esa no, ¿no?

Tampoco tiene mucho sentido lo que he comentado yo, que mas bien lo he preguntado por curiosidad, porque nunca se sabe, igual espera un true or false, en lugar de un 0 or 1

A ver que le dice soporte


([N4] Infortic) #7

Hola.

Preguntaré a soporte.

vgeogeo, ese parámetro indica si quieres que la petición se haga en asíncrono, no es el caso, yo quiero que sea síncrona, por eso paso un 0, ese parámetro no dá problemas por tipado, lo uso en muchos sitios así.

Gracias


([N1] wikan) #8

Creo que no me equivoco, pero en javascript los booleanos son true/false, no igual que Velneo 0/1

Si necesita usuario y contraseña, ¿Por que no lo envias en el open?


([N4] Infortic) #9

Hola.

Perdón, no he podido mirar el foro en tiempo.

Wikan, con el open tampoco funciona, lo explico en el primer post.

Según soporte el problema es que xmlhttprequest no soporta https autofirmado, así que no va hagas lo que hagas.

Al final tuve que usar curl.exe, no hubo manera de hacerlo de otra forma.

Como suele pasar con velneo, siempre hay un pequeño aspecto en cada funcionalidadque hace que no haya forma de hacer funcionar lo que quieres, y te toca usar una ñapa después de otra perdiendo horas a montón.