Charset em requisição POST feita em Ajax (jQuery)

1 resposta
guedes

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

1 Resposta

N

Olá Quedes,

eu também estava enfrentando esse problema, conseguir resolver trocando a versão do jquey coloque a versão jquery-1.3.2.min.js
e agora está funcionando normal.

abraço, espero ter ajudado.

Criado 8 de julho de 2009
Ultima resposta 30 de jul. de 2009
Respostas 1
Participantes 2