Olá a todos,
seguinte, desenvolvo uma rede social onde os usuários possuem murais, algo similar aos scraps do Orkut.
Cada usuário tem seu mural onde outros usuários podem enviar mensagems.
Acontece que estamos implementando a funcionalidade de responder uma mensagem enviada diretamente da página do mural, novamente similar ao que o Orkut faz xD.
Abaixo de cada mensagem enviada existe um link responder que, via JavaScript, cria um formulário com um TextArea para o usuário enviar a resposta,
mas ao enviar a resposta, via Ajax, se eu estiver no Chrome ou no IE os assentos são substituídos por caracteres como ó.
Mas no FireFox funciona perfeitamente, e em todos os navegadores no envio comum, não Ajax, também funciona sem problemas.
Estou usando VRaptor, JSP e jQuery.
Segue o trecho do código que faz a requisição:
$(".form_mural_ajax").submit(function () {
var idMural = this.id;
var div = $(this).parent().get(0);
$.post(
"/mural.escreverUsuarioAjax.logic",
{
"destinatario.id": $(this).find("input[@name=destinatario.id]").val(),
"mural.privada": (($(this).find("input[@name=mural.privada]").val() == "on") ? true : false),
"mural.mensagem": $(this).find("textarea").val()
},
function (data) {
if (data.indexOf("ok") >= 0) {
$(div).html("Mensagem enviada com sucesso ");
$(div).addClass("notificacao");
$(div).css("font-size", "10px");
$(div).css("text-align", "right");
$(div).slideToggle();
}
}
);
return false;
});
E a função que cria o formulário:
function responderMural(idAutor, idMural, event) {
$("#resposta" + idMural).html(
"<form id='" + idMural + "' class='form_mural form_mural_ajax' method='post'>" +
"<textarea name='mural.mensagem' class='release box_comentarios mensagem'></textarea>" +
"<input type='hidden' name='destinatario.id' value='" + idAutor + "' />" +
"<input name='Submit1' type='submit' value='enviar' class='bt margin-bottom' />" +
"<input id='priv' name='mural.privada' type='checkbox' />" +
"<label for='priv'>mensagem privada</label></form>");
$.getScript("/js/envioMural.js");
if (! $.browser.msie) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
Já tentei trocar o $.post por um $.ajax do jQuery, setando a opção contentType para “text/html; charset=utf-8” e “text/html; charset=iso-8859-1” entre outras mais, mas sem nenhum progresso.
Seguindo o indicado neste site já tentei colocar um beforeSend e adicionar um Header à requisição mas nesse caso os parâmetros chegam nulos à logica.
Alguma sugestão de o que deve ser feito?
Agradeço desde já qualquer tipo de ajuda.
[]'s