Galera,
estou tendo um problema com o ajax do jquery que esta me tirando o sono.O problema é o seguinte, quando envio os dados para servidor eles estao indo com varios caracteres estranhos tipo ó quando uso os caracteres especiais ç ~ á o codigo é o seguinte:
Valeu Ovelha,
mas infelizmente não deu certo descobri que o metodo ajax do jquery só envia os dados no padrão UTF-8 quando enviado no tipo POST troquei para GET e os dados foram enviados normalmente.
Valeu.
jQuery.ajax({
url: this.action,
type: "POST", --troquei para GET
dataType:"html",
cache: false,
data: decodeURI(jQuery(this).serialize()),
success: function(data, textStatus, XMLHttpRequest){
var pane = $("#overlay").overlay().getOverlay().find('#wrapOverlay').html(data);
}
DnCam. Você fez mas algo, para que isso funcione? Cara estou a dois dias tentando resolver isso, e nada que eu faço dá certo. Ja estou pensando seriamente em mudar tudo aqui pra prototype. Acho que estou fazendo algo errado. Mas como é a primeira vez estou num projeto que usa JQuery, não estou achando onde. Vou colocar partes do meu codigo aqui pra que se alguem poder me ajudar. Vou continuar procurando a solução aqui tb. porque acho que se demorar mas a coisa vai ficar preta pra mim aqui na empresa kkkk.
$.ajax({
contentType: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
url: action,
type: 'GET',
//type: 'POST',
dataType: 'html',
cache: false,
data: $(button.form).serialize(),
forceSync: true,
beforeSend: function(){
ajaxLoadShow();
},
complete: function(){
ajaxLoadHide();
},
success: function(response){
$("#block-two").html(response);
},
error: function(jqXHR, textStatus, errorThrown){
$('#block-one').html(jqXHR.responseText);
}
});
Já tentei um monte de formas, olhando a doc do JQuery e por dicas em forums e nada. Fico muito grato se alguem ai poder me ajudar.
Carinha, o problema aí está no serialize… Internamente no JQuery ele acaba chamando o métodos javascript encodeURI, que converte na marra os campos para UTF-8. Isto acaba gerando os tais caracteres estranhos.
Então, uma pergunta simples: porque você não usa UTF-8 na sua página de uma vez, ao inves de ISO-8859-1? É a solução mais rápida…
Na verdade eu não pesquisei a fundo o motivo de usar ou não o UTF-8, Segue informações de algumas pessoas de foruns, onde dissem que se usar UTF-8 nunca vai funcionar os caracteres especiais como ‘é, ão, ç’ por exemplo.
Gente, mexi tanto aqui que nem sei mas onde mexi pra corrigir o problema. Mas aparentemente foi colocar isso @CHARSET "UTF-8"; nos arquivos *.css Agora esta funcionando. Mas confeso que vou tirar um tempo pra estudar esses dois encoding, pois juro não entendi bem esse treco não. Não entendi quando e qual usar. Analisando aqui ve que em aguns lugares do projeto esta o UTF-8 e em outros esta o ISO-8859-1. Estou até com medo de mexer e dar rolo denovo. Vou criar um projetinho em casa pra estudar isso. Mas valew pessoal que tentou ajudar. muito obrigado.
O encoding dos dados que são enviados pelo servidor e o encoding da sua página (e do arquivo que ela está sendo salva!) precisam ser o MESMO.
Agora que ví… Tópico de 2010! :roll: