Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2010, 15:36
sqa212
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años
Puntos: 0
Problema con Acentos (AJAX + POST)

Hola a todos, estoy intentando enviar un formulario con Ajax usando el metodo POST, Al enviar áéíóú se inserta áéÃ*óú.

He puesto:

Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"

Pero el problema persiste

Estos son los archivos que uso:

Enviar.asp


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Response.Expires = 0
session.LCID = 1034 'formatos en castellano
'para que no den problemas los acentos y la ñ
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<script type="text/javascript">
function CreaXHR()
{
var ref = false;

try { // Procedimiento para crear un objeto
// XMLHttpRequest compatible entre distintos
ref = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e1) { // navegadores Web
try {
ref =
new ActiveXObject('Microsoft.XMLHTTP');
} catch (e2) {
objXML = false;
}
}

if (!ref && (typeof XMLHttpRequest != 'undefined' || window.XMLHttpRequest))
ref = new XMLHttpRequest();

return ref;
}


function enviaformcontacto(){
var formcontacto = document.getElementById('formcontacto');
var iIndice;
var strContenido = "";
var strSeparador = "";

// Recorremos el input que hay
for(iIndice = 0; iIndice < 1; iIndice++) {
strContenido = // concatenando los datos
strContenido + strSeparador +
formcontacto.elements[iIndice].id + '=' +
encodeURIComponent(formcontacto.elements[iIndice].value);
strSeparador = '&';
}

var resultadocontacto = document.getElementById('resultadocontacto');
var objXML = CreaXHR();
if(objXML) // Si tenemos el objeto
{
// Enviamos la solicitud al servidor
objXML.open('POST', 'guardar.asp',false);
// con las cabeceras apropiadas
objXML.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
objXML.setRequestHeader('Content-Length', strContenido.length);
objXML.send(strContenido);
resultadocontacto.innerHTML = '<hr /><p>' + '<b>' + objXML.responseText + '</b></p>';
}

return false;
}
</script>
</head>
<body>

<form name="formcontacto" id="formcontacto">
<textarea name="mensajecontacto" rows="10" cols="30" id="mensajecontacto"></textarea>
<br>
<a href="javascript:void(0)" onClick="return enviaformcontacto();">Enviar</a>
</form>
<br>
<div id="resultadocontacto"></div>
</body>
</html>

Guardar.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file="conexion.asp" -->
<%
Response.Expires = 0
session.LCID = 1034 'formatos en castellano
'para que no den problemas los acentos y la ñ
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<%
mensajecontacto=request.Form("mensajecontacto")
SQLContacto="INSERT INTO mensajecontactos (mensajecontacto) VALUES ('"&mensajecontacto&"')"
db.Execute(SQLContacto)
Response.Write(SQLContacto)
%>
</body>
<%
conexion.Close
set conexion = Nothing
%>

¿Como podría solucionarlo?