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 :
function send(var cadena)
{
url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
$("#selector").load(url);
}
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
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).
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.
$.ajax({
// o get
type:"POST",
url:"tuurl",
data:parametros,
success:function(html){
//tumetodo en caso de que sea correcto
console.log("El resultado ... " + html);
},
// no recuerdo el nombre de los parametros xD
error:function(parametro1,parametro2,parametro){
//encaso de que sea erroneo
}
});
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:
function sendReq(var cadena)
{
var req = new XMLHttpRequest();
req.
url = encodeURI("http://"+ "127.0.0.1" + "cadena);
$("#selector").load(url);
}
function sendAjax(var cadena)
{
$.ajax({
type:"GET",
url:"http://127.0.0.1/",
data:cadena,
success:function(html){
//tumetodo en caso de que sea correcto
console.log("El resultado ... " + html);
},
// no recuerdo el nombre de los parametros xD
error:function(parametro1,parametro2,parametro){
//encaso de que sea erroneo
}
});
}
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
Cambia el method por POST y enséñanos els formato de data.
S2
¿Alguien me puede explicar porque esto no vaen chrome?:
<html>
<head>
<script type="text/javascript">
function hola()
{
alert("go");
}
</script>
</head>
<body>
<h1>hola!</h1>
<form>
<input type="text" name="usuario" value="" />
<button type="submit">Go</button>
</form>
<script type="text/javascript">
hola();
</script>
</body>
</html>
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?
<html>
<head>
<script type="text/javascript">
function sendText(var cadena)
{
alert(cadena);
var req = new XMLHttpRequest();
url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
$("#selector").load(url);
}
</script>
</head>
<body>
<h1>hola!</h1>
<form>
<input type="text" name="usuario" value="" />
<button type="submit">Go</button>
</form>
<script type="text/javascript">
sendText("hola mundo");
</script>
</body>
</html>
¿Porque no se ejecuta ni el alert()? :""""DD
@Kaxperday, se te olvida cerrar las comillas, tanto en el codigo anterior como en el que acabas de poner.
function sendText(var cadena)
{
alert(cadena);
var req = new XMLHttpRequest();
url = encodeURI("http://"+ "127.0.0.1" + "/cadena);
$("#selector").load(url);
}
Ahí no cierras el string cadena.
function sendReq(var cadena)
{
var req = new XMLHttpRequest();
req.
url = encodeURI("http://"+ "127.0.0.1" + "cadena);
$("#selector").load(url);
}
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
Tienes razón drvy, lo acabo de cambiar y tampoco funciona :"""
<html>
<head>
<script type="text/javascript">
function sendText(var cadena)
{
alert(cadena);
var req = new XMLHttpRequest();
url = encodeURI("http://"+ "127.0.0.1" + "/cadena");
$("#selector").load(url);
}
</script>
</head>
<body>
<h1>hola!</h1>
<form>
<input type="text" name="usuario" value="" />
<button type="submit">Go</button>
</form>
<script type="text/javascript">
sendText("hola mundo");
</script>
</body>
</html>
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
Cargas jQuery en algún lado ? Lo digo porque utilizas:
$("#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
CitarPD: 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?.
<html>
<head>
<script type="text/javascript">
function hola(var hola)
{
alert(hola);
}
</script>
</head>
<body>
<h1>Hola!</h1>
<form>
<input type="text" name="usuario" value="" />
<button type="submit">Go</button>
</form>
<script type="text/javascript">
hola("holamudnooo");
</script>
</body>
</html>
No sale nada.
Te dije que abrieras la consola javascript de tu navegador.
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:
function hola(hola)
{
alert(hola);
}
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
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:
function httpPost(cadena)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "POST", "http://127.0.0.1", false );
xmlHttp.send( cadena );
}
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.
Cita de: 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
¿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:
$.ajax("url-script.js",{
type:"POST",
datatype:"script",
success(result){
eval(result) //Compila el codigo
},
error(error){
alert(error);
);
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 :-* :-*