Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Envio de contenido HTML con $.ajax de jQuery

Estas en el tema de Envio de contenido HTML con $.ajax de jQuery en el foro de Jquery en Foros del Web. Hola a todos, sinceramente ya no se que mas hacer, he recorrido todos los sitios durante mas de 10 horas y no encuentro una solución ...
  #1 (permalink)  
Antiguo 11/05/2011, 21:56
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Envio de contenido HTML con $.ajax de jQuery

Hola a todos, sinceramente ya no se que mas hacer, he recorrido todos los sitios durante mas de 10 horas y no encuentro una solución a mi problema por lo que me decidí a crear un post.
Me encuentro desarrollando un editor de noticias el cual gestiona las mismas mediante AJAX, JQUERY, PHP, MySQL.
Para el contenido de la misma utilizo CKEDITOR el cual he logrado adaptar perfectamente al framework Codeigniter.
Dicho editor me genera el código HTML con las etiquetas y tags correspondientes para finalmente ser capturado por una funcion javascript y enviado mediante AJAX a una funcion PHP que se encarga de insertarla en la Base de Datos.
Para enviar los datos creo una cadena de tipo JSON con los datos del textarea donde se encuentra mi editor:
Código:
function debug(){
    var vcadena = JSON.stringify($('#ncuerpo').val(), asd, 2);

    $.ajax({
        type: "POST",
        url: "/administrar/noticias/printDebug",
        data: ({cadena:vcadena})
    });
}
Luego, en mi funcion PHP me encargo de capturar ese valor, decodificarlo y mostrarlo mediante print (solo para verlo mediante Firebug)
Código PHP:
public function printDebug(){
        
$datos json_decode($this->input->post('cadena'));
        print 
$datos;
    } 
Cuál es el problema? por algun motivo al enviar los datos mediante ajax (ya sea utilizando JSON o directamente como string) los atributos del <span> correspondientes a los estilos son eliminados, es decir, de tener ésto al momento de capturarlo (javascript):
Código HTML:
"<p>\n\t<span style=\"color:#0000ff;\">Soy una cadena de color azul</span></p>\n"
paso a tener lo siguiente (en el PHP):
Código HTML:
<p><span>Soy una cadena de color azul</span></p> 
Si inserto, por ejemplo, una tabla con estilos el resultado es la eliminacion de la palabra style:
Código HTML:
<table border="1" cellpadding="1" cellspacing="1" 500px; "> 
Alguien podría orientarme sobre qué es lo que me está sucediendo?
Muchas gracias
  #2 (permalink)  
Antiguo 24/06/2014, 08:47
Avatar de ivangvillar  
Fecha de Ingreso: agosto-2013
Ubicación: Valencia
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Envio de contenido HTML con $.ajax de jQuery

Me pasa exactamente lo mismo :S encontraste solucion?
  #3 (permalink)  
Antiguo 24/06/2014, 11:41
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Envio de contenido HTML con $.ajax de jQuery

Si, en mi caso fue una cuestión del framework que estaba usando.
Trabajo sobre Codeigniter y el mismo tiene un filtro cross-site para evitar ataques (eliminando etiquetas html) el cual está activado por defecto.

En el caso de que te sirva, ésta es la explicación:
Cita:
XSS Filtering

The Input class has the ability to filter input automatically to prevent cross-site scripting attacks. If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your application/config/config.php file and setting this:

$config['global_xss_filtering'] = TRUE;
Please refer to the Security class documentation for information on using XSS Filtering in your application.
http://ellislab.com/codeigniter/user...ies/input.html

Saludos!
  #4 (permalink)  
Antiguo 24/06/2014, 16:14
Avatar de ivangvillar  
Fecha de Ingreso: agosto-2013
Ubicación: Valencia
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Envio de contenido HTML con $.ajax de jQuery

Muchas gracias!!

Etiquetas: ajax, ckeditor, desparece, estilos, json, style
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 18:15.