|
423
|
Programación / Desarrollo Web / (Solucionado) Problema con data de Ajax
|
en: 8 Diciembre 2018, 18:04 pm
|
Hola que tal espero y me puedan ayudar, tengo un error de lo mas tonto. Sin embargo no se por que el jquery no esta enviando el data mediante Ajax. JS function local_search() { $.ajax({ async: true, type: "GET", accepts: "application/json", url: "/api/search", data: { s: $("#input_str").value }, success: function (result) { alert(result.ok); } }); }
HTML: <input id="input_str" type="text">
Puedo ver que si hace la peticion al servidor, pero no envia nunca la data RAW Request Host: localhost User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0 Accept: undefined Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://localhost/ X-Requested-With: XMLHttpRequest Connection: keep-alive Pragma: no-cache Cache-Control: no-cache
SoluciónCodigo Incorrecto data: { s: $("#input_str").value }, Codigo Correcto[code] data: { s: $("#input_str").val() }, [/code]
|
|
|
424
|
Programación / Programación C/C++ / Re: Guardar una frase en los elementos de un vector
|
en: 8 Diciembre 2018, 17:53 pm
|
Mejor di que quieres que te hagan la tarea. El codigo presenta varios problemas, el numero de espacios no puede ser mas de 10, ya que definimos *vector[10], se podria hacer de forma dinamica para aceptar "infinitos" pero eso ya involugra mas codigo. #include<stdio.h> #include<string.h> int main() { char cadena[100]; char *token; char *vector[10]; int i = 0; do { vector[i] = token; printf("%i -> %s\n",i +1,vector [i ]); i++; }while(token != NULL); }
|
|
|
425
|
Programación / Programación C/C++ / Re: Duda general en cuanto al lenguaje C/C++
|
en: 7 Diciembre 2018, 21:02 pm
|
Ademas se ser un lenguaje muy completo, C es un lenguaje que marco un antes y después en lo que a programación se refiere.
El sistema base la mayoria de los sistemas operativos esta escrito en lenguaje C, existen ciertas rutinas que son dependientes del procesador y cambian de un tipo de set de instrucciones en ensamblador a otro, sin embargo siempre puedes tener un código en C totalmente portable que al final sera optimizado para cada procesador mediante el compilador. Motivo por el cual a permanecido.
Si bien es cierto que Java es tambien portable este cambia mas rapido, ya que asi como lo mencionas el lenguaje a cambiado con los años, métodos que se marcan como "deprecated", Java depende de que exista una maquina virtual instalada en el sistema operativo y C no teniendo el ejecutable ya funciona en el sistema para el que fue compilado
C y C++ admito que no es facil de aprender, sin embargo conociendo C, te das una idea de las estructuras de control, variables y en general de todos los elementos de un lenguaje de programación, con C++ apredes el paradigma de la programación Orientada a Objetos.
He aprendido en mucho tiempo varios lenguajes desde Ensamblador, C, C++, JAVA, javascript, perl, python, PHP, VB, C# entre otros, y la verdad C a sido y sera mi lenguaje favorito.
Saldos!
|
|
|
426
|
Programación / Programación C/C++ / Re: ¿Queda algo en el Buffer de Entrada stdin? (Solucionado)
|
en: 7 Diciembre 2018, 05:49 am
|
Tienes razon por alguna razon el fseek no esta procesando la ultima parte del stdin. Cambie el printf por perror para ver que error marca y dice if(flagValidacion)
Hay que ver el source code de fseek y ver exactamente que parte es la que falla. Y ver si es que de alguna manera el sistema guarda esos bytes saltados, cosas que no creo. Pero hay que revisar. La otra opcion es lo que comente de revisar el ultimo valor leido por fgets y determinar si queda algo en buffer de entrada. Ejemplo: #include <stdio.h> void myflush(const char *ptr,int size) { int i = 0; while(i < size && ptr[i++] != 0xA); if(i == size) } int main() { char temp[10]; int flagValidacion ; while(1) { myflush(temp,10); // Tiene que ser el ultimo arreglo leido y la ultima cantidad marcada con fgets } }
O bien realizarlo con una implementacion propia de fgets que le quite ese "pendiente" al programador. Incluso como un extra le borras al final ese "Enter" si es que existe. #include <stdio.h> void myfgets_stdin(char *ptr,int size) { int i = 0; while(i < size && ptr[i++] != 0xA); if(i == size) else ptr[i-1] = '\0'; } int main() { char temp[10]; int flagValidacion ; while(1) { myfgets_stdin(temp,10); } }
Saludos
|
|
|
428
|
Programación / Programación C/C++ / Re: [?] ERRORLEVEL
|
en: 6 Diciembre 2018, 23:08 pm
|
No puede ser posible, algo esta mal. - No estes ejecutando el ejecutable que compilaste. Intenta borrar el exe y compilar de nuevo.
- Puede ser algun problema de compilador que estes usando.
|
|
|
430
|
Programación / Programación C/C++ / Re: [?] ERRORLEVEL
|
en: 6 Diciembre 2018, 23:01 pm
|
Posiblemente tu programa no este terminando de manera correcta, posiblemente tienes algun bufferoverflow y el programa termina de forma inesperada y sin control de error. ejemplo PROGAMA TOTALMENTE MAL: #include<string.h> void funcion() { char arreglo[20]; memset(arreglo ,'A',100); //BUFFER OVERFLOW !! } int main() { funcion(); return 1; }
Ejemplo llamando a la funcion vulnerable.  Ejemplo SIN llamar a la funcion vulnerable  El programa anterior es totalemente vulnerable APROPOSITO, termina en la funcion(), sin volver a la funcion principal. Revisa tu codigo posiblemente tienes un BUG, si manejas memoria dinamica asegurate de no estar trabajando sobre apuntadores ya liberados, si trabajas con funciones como strcpy o similares segurate de cambiarlas por sus metodos seguros, Asegurate de no salirte de los Limites del arreglo, algo muy comun es que si tienes un arreglo[10], y en el codigo realizas algo como for (i= 0; i <= 10, i++), en este caso estarias escribiendo UN SOLO byte fuera de la direccion del arreglo lo cual causaria un error de buffer overflow conocido como OFF by ONE Saludos
|
|
|
|
|
|
|