Deseo enviar algunas variables y una cadena con el método POST desde JavaScript. Obtengo la cadena de la base de datos y luego la envío a una página de PHP. Estoy usando el objeto XMLHttpRequest. El problema es que la cadena contiene el carácter "&" algunas veces, y la matriz $ _POST en PHP lo ve como varias teclas. He intentado reemplazar el "&" con "\ &" con la función replace(), pero parece que no hace nada. ¿Alguien puede ayudar?¿Cómo puedo enviar el carácter "&" (ampersand) a través de AJAX?
El código JavaScript y la cadena tiene el siguiente aspecto:
var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');
var poststr = "act=save";
poststr+="&titlu="+frm.value.titlu;
poststr+="§iune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;
xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);
cuerdas es:
<span class="style2">"Busola"</span>
Sí, encodeURIComponent lo hace! ¡Gracias! – candino
¿Es esto suficiente para escapar de manera segura de los datos o es lo suficientemente "justo" para evitar el problema de ampersand? – Sprottenwels
@Sprottenwels, es suficiente para codificar correctamente todos los datos. ¿A qué te refieres con "seguridad" en este contexto? –