Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Kaxperday en 19 Octubre 2015, 22:04 pm



Título: [Resuelto] Enviar texto a una url con javascript
Publicado por: Kaxperday en 19 Octubre 2015, 22:04 pm
En plan quiero hacer una función en js que cuando se ejecute mande una cadena de texto como "hola mundo" a un servidor remoto, en este caso a localhost.

¿Se puede hacer? ¿alguna idea?

Buscare mientras.

Gracias y un saludo.

Edito: XD quizás :

Código
  1. function send(var cadena)
  2. {
  3. url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
  4. $("#selector").load(url);
  5. }

El problema de esto es que quiero que lo mande en plan sockets, porque el servidor se corre en localhost, y es un server en cpp que estoy haciendo y no podrá tomar esta orden... mm ¿como podría mandarle datos?.

El servidor escucha todo lo que se le mande, pero con este método no mandamos cosas al server solo nos conectamos a el y solicitamos un archivo de este..mm


Título: Re: Enviar texto a una url con javascript
Publicado por: MinusFour en 19 Octubre 2015, 22:23 pm
Me imagino que te refieres en el navegador, para eso tienes que usar XHR (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) o librerias que trabajen con XHR (como jQuery.ajax).


Título: Re: Enviar texto a una url con javascript
Publicado por: Pablo Videla en 20 Octubre 2015, 00:32 am

Esto seria mas o menos lo que necesitas...

puedes consultar la referencia de jquery para mas detalles.

No he probado el codigo pero es mas o menos asi , es solo un ejemplo.
Código
  1. $.ajax({
  2. // o get
  3. type:"POST",
  4. url:"tuurl",
  5. data:parametros,
  6.  
  7. success:function(html){
  8. //tumetodo en caso de que sea correcto
  9. console.log("El resultado ... " + html);
  10. },
  11. // no recuerdo el nombre de los parametros xD
  12. error:function(parametro1,parametro2,parametro){
  13. //encaso de que sea erroneo
  14. }
  15. });
  16.  
  17.  


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 11:23 am
Buenas, gracias por las respuestas a ambos lo primero.

Lo estoy probando y no me llegan datos al servidor desconozco los motivos.

Tengo el servidor en C++ funcionando en la red local, he probado a conectarme con el movil y al poner la ip del ordenador en el navegador del movil el servidor del ordenador detecto la peticion HTTP del movil, luego el servidor funciona.

Pero sin embargo cuando corro el script de js para mandar datos a el servidor desde el navegador del ordenador, no llega ninguna petición HTTP, estudiaré el caso, mientras os dejo lo que tengo:

Código
  1. function sendReq(var cadena)
  2. {
  3. var req = new XMLHttpRequest();
  4. req.
  5. url = encodeURI("http://"+ "127.0.0.1" + "cadena);
  6. $("#selector").load(url);
  7. }
  8.  
  9. function sendAjax(var cadena)
  10. {
  11. $.ajax({
  12. type:"GET",
  13. url:"http://127.0.0.1/",
  14. data:cadena,
  15.  
  16. success:function(html){
  17. //tumetodo en caso de que sea correcto
  18. console.log("El resultado ... " + html);
  19. },
  20. // no recuerdo el nombre de los parametros xD
  21. error:function(parametro1,parametro2,parametro){
  22. //encaso de que sea erroneo
  23. }
  24. });
  25. }
  26.  

Seguiré probando y estudiando estos lenguajes un poco, porque nunca los he estudiado más haya que para pruebas superficiales como esta XD.

Saludos.

Edito: Bueno me estoy poniendo un poco negro con el js, pues declaro una funcion en el head y en el body la ejecuto y pongo un alert al principio y no sale nada (no se ejecuta) luego la pego en el body la ejecuto y si funciona a veces no ojj, ahí va la cosa, no se si funciona porque no puedo ejecutar la funcion :"""D

Para que funcione tengo que ejecutar la funcion al final del body y ponerla entera no llamarla al head, sino ponerla entero en el body y llamarla tras declararla en el body en el mismo script XD


Título: Re: Enviar texto a una url con javascript
Publicado por: eLank0 en 20 Octubre 2015, 12:00 pm
Cambia el method por POST y enséñanos els formato de data.

S2


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 12:09 pm
¿Alguien me puede explicar porque esto no vaen chrome?:

Código
  1. <html>
  2.  
  3. <head>
  4.  
  5. <script type="text/javascript">
  6.  
  7. function hola()
  8. {
  9. alert("go");
  10. }
  11.  
  12. </script>
  13. </head>
  14.  
  15. <body>
  16.  
  17. <h1>hola!</h1>
  18. <form>
  19.    <input type="text" name="usuario" value="" />
  20.    <button type="submit">Go</button>
  21. </form>
  22.  
  23. <script type="text/javascript">
  24. hola();
  25. </script>
  26.  
  27. </body>
  28. </html>
  29.  

O no espera que si que va, va lo que le da la gana XD

Vale si lo anterior funciona, ¿porque esto no lo hace?

Código
  1. <html>
  2.  
  3. <head>
  4.  
  5. <script type="text/javascript">
  6.  
  7. function sendText(var cadena)
  8. {
  9. alert(cadena);
  10. var req = new XMLHttpRequest();
  11. url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
  12. $("#selector").load(url);
  13. }
  14.  
  15. </script>
  16. </head>
  17.  
  18. <body>
  19.  
  20. <h1>hola!</h1>
  21. <form>
  22.    <input type="text" name="usuario" value="" />
  23.    <button type="submit">Go</button>
  24. </form>
  25.  
  26. <script type="text/javascript">
  27. sendText("hola mundo");
  28. </script>
  29.  
  30. </body>
  31. </html>
  32.  

¿Porque no se ejecuta ni el alert()? :""""DD


Título: Re: Enviar texto a una url con javascript
Publicado por: #!drvy en 20 Octubre 2015, 12:16 pm
@Kaxperday, se te olvida cerrar las comillas, tanto en el codigo anterior como en el que acabas de poner.


Código
  1. function sendText(var cadena)
  2. {
  3. alert(cadena);
  4. var req = new XMLHttpRequest();
  5. url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
  6. $("#selector").load(url);
  7. }
  8.  

Ahí no cierras el string cadena.

Código
  1. function sendReq(var cadena)
  2. {
  3. var req = new XMLHttpRequest();
  4. req.
  5. url = encodeURI("http://"+ "127.0.0.1" + "cadena);
  6. $("#selector").load(url);
  7. }
  8.  
  9. function sendAjax(var cadena)

Ahí tampoco.

Te sugiero que abras la consola javascript de tu navegador cuando estés depurando. Asi puedes ver los errores que aloja y en que linea.

Saludos


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 12:22 pm
Tienes razón drvy, lo acabo de cambiar y tampoco funciona :"""

Código
  1. <html>
  2.  
  3. <head>
  4.  
  5. <script type="text/javascript">
  6.  
  7. function sendText(var cadena)
  8. {
  9. alert(cadena);
  10. var req = new XMLHttpRequest();
  11. url = encodeURI("http://"+ "127.0.0.1" + "/cadena");
  12. $("#selector").load(url);
  13. }
  14.  
  15. </script>
  16. </head>
  17.  
  18. <body>
  19.  
  20. <h1>hola!</h1>
  21. <form>
  22.    <input type="text" name="usuario" value="" />
  23.    <button type="submit">Go</button>
  24. </form>
  25.  
  26. <script type="text/javascript">
  27. sendText("hola mundo");
  28. </script>
  29.  
  30. </body>
  31. </html>
  32.  

No hay rastro de alert();

No será porque tengo que poner onload en el body de la función que quiero ejecutar?, porque ya no se que hacer, y no se mucho del tema de programación web, sorry XD


Título: Re: Enviar texto a una url con javascript
Publicado por: #!drvy en 20 Octubre 2015, 12:25 pm
Cargas jQuery en algún lado ? Lo digo porque utilizas:

Código
  1. $("#selector").load(url);

Pero en ese código que dejas no te veo cargarlo en ningún lado.

PD: Los scripts siempre dejalos al final de <body> antes de </body>. Asi te aseguras que cargue toda la pagina y el DOM antes de cargar el javascript.

Saludos


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 12:33 pm

Citar
PD: Los scripts siempre dejalos al final de <body> antes de </body>. Asi te aseguras que cargue toda la pagina y el DOM antes de cargar el javascript.

¿Te refieres solo a la llamada a la función declarada en el head no?

Si, es la primera ve que trabajaba con jquery y no lo sabía pero el problema va más allá de eso, por ejemplo, ¿porque no me va esto?.

Código
  1. <html>
  2. <head>
  3.  
  4. <script type="text/javascript">
  5.  
  6. function hola(var hola)
  7. {
  8. alert(hola);
  9. }
  10. </script>
  11. </head>
  12. <body>
  13.  
  14. <h1>Hola!</h1>
  15.  
  16.  
  17. <form>
  18.    <input type="text" name="usuario" value="" />
  19.    <button type="submit">Go</button>
  20. </form>
  21.  
  22. <script type="text/javascript">
  23. hola("holamudnooo");
  24. </script>
  25.  
  26. </body>
  27. </html>
  28.  
  29.  

No sale nada.


Título: Re: Enviar texto a una url con javascript
Publicado por: #!drvy en 20 Octubre 2015, 12:41 pm
Te dije que abrieras la consola javascript de tu navegador.

Código:
SyntaxError: missing formal parameter thugs.html:6:14
ReferenceError: hola is not defined thugs.html:23:1

El var no se declara cuando recoges un parametro de una funcion. Tu funcion deberia quedar asi:

Código
  1. function hola(hola)
  2. {
  3. alert(hola);
  4. }

Quizás un curso básico de javascript no te vendrá mal.
http://www.javascriptya.com.ar/

Citar
¿Te refieres solo a la llamada a la función declarada en el head no?

No, a todo.

Saludos


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 12:52 pm
Ya probé a hacerlo y tampoco, por cierto gracias por el consejo de la consola, se me había pasado por alto, estaba ofuscado intentando hacerlo correr :$.

Por fin, ahora probaré lo de enviar datos, muchas gracias, y si no me vendría mal estudiar js antes de ponerme a hacer esto, pero es algo muy puntual, todavía no estoy interesado en aprenderlo :P

¿xml también necesita ser cargado como jquery?, perdonad la ignorancia en el tema XP

Saludos y gracias.

Bueno, visto que ambas funciones necesitan Jquery he encontrado esta, que no lo necesita:

Código
  1. function httpPost(cadena)
  2. {
  3.    var xmlHttp = new XMLHttpRequest();
  4.    xmlHttp.open( "POST", "http://127.0.0.1", false );
  5.    xmlHttp.send( cadena );
  6. }

Me da error de que está en desuso, y fallo al cargar "http://127.0.0.1/", aunque el server está corriendo.

La adevertencia de que está en desuso usarlo asincronamente en el main, se arregla cambiando a true, el tercer parámetro del método open(), ahora simplemente me da error de "conection refused".

Saludos.

Edito: Working as charm!!

Gracias, ya editaré y explique porqué ahora funciona, lo conseguí hacer con XML, dejando de lado las funciones que pedían cargar jquery, Saludos!!

Entre otras cosas uno de mis errores fue conectar a 127.0.0.1, cuando el servidor lo tendía bindeado a la dirección local de la red.


Título: Re: Enviar texto a una url con javascript
Publicado por: viriatooundil en 20 Octubre 2015, 13:22 pm
Ya probé a hacerlo y tampoco, por cierto gracias por el consejo de la consola, se me había pasado por alto, estaba ofuscado intentando hacerlo correr :$.

Por fin, ahora probaré lo de enviar datos, muchas gracias, y si no me vendría mal estudiar js antes de ponerme a hacer esto, pero es algo muy puntual, todavía no estoy interesado en aprenderlo :P

¿Para cargar las librerías y poder ejecutar tanto ajax como xml que me recomiendan?, mientras sigo buscando.

Saludos y gracias.

HTML es un XML y por ello javascript ya viene con funciones para manejar XML aunque hoy en día se usa mas JSON en lo que a tratamiento de datos se refiere. AJAX es una clase extendendida de XMLHTTPRequest en la libreria de jquery. No entiendo la pregunta, en javascript no puedes cargar las librerias como en java o c++, uno es lenguaje script y otro es lenguaje programación, si quieres alguna manera de cargar librerias en js esta es tediosa y mejor no usarla:

Código
  1. $.ajax("url-script.js",{
  2. type:"POST",
  3. datatype:"script",
  4. success(result){
  5.   eval(result) //Compila el codigo
  6. },
  7. error(error){
  8.   alert(error);
  9. );
  10.  


Título: Re: Enviar texto a una url con javascript
Publicado por: Kaxperday en 20 Octubre 2015, 13:49 pm
Gracias por la respuestas.

Pero ahora la pregunta del millón, que no tiene que ver mucho con el tema pero vosotros sabréis, la idea era hacer un mitm e inyectar js que pasaran el contenido de los forms a el servidor local que hace el mitm. Perooo ¿si hay conexión https entre cliente y servidor entonces no podremos inyectar nuestro js malicioso no?, solo podremos detectar los paquetes http inyectarles el código y reenviarlos, pero si usan https todo lo que cargan incluido el html está cifrado entonces no podemos inyectar nuestro js, ¿no?.

Luego, primero habría que bypassear https si queremos inyectar js ¿no?.

Saludos y gracias.  :P :rolleyes:

Edito: PD ya decía yo que no podía ser tan fácil jajaja, vuelta al sslstrip.

Luego este vídeo es una farsa, pues solo funciona con HTTP  :-( :-( :-(, así todos sabemos XD

https://www.youtube.com/watch?v=0QT4YJn7oVI

Claro eso explicaría porque todos sus logins son de páginas HTTP  :-( :-( :-( XD
mail.com no es HTTPS  :-* :-*