• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrosorio

AJAX: overrideMimeType

15 mensagens neste tópico

Ora boas. Estou a utilizar AJAX para actualizar uma tabela dinamicamente (a partir de uma base de dados mySQL) aquando da alteração da opção seleccionada numa form select.

Isto funciona tudo muito bem, mas como tenho caracteres em iso-8859-1 tenho que lhe dizer para me ir buscar os dados com esse encoding:

xmlHttp.overrideMimeType("text/html; charset=iso-8859-1");

em que xmlHttp é um objecto de xmlHttp.

Isto em firefox's e coisas do género funciona muito bem, mas o objecto em ie não tem as mesmas propriedades logo não suporta overrideMimeType. Sendo assim, se não colocar esta linha para o ie, a tabela aparece-me cheia de pontos de interrogação.

A minha dúvida é: existe alguma função equivalente ao overrideMimeType que me permita colocar isto a funcionar no ie?

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

mete isto se tiveres acesso ao lado do servidor

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho isso no head da minha página html principal. Onde é que deveria meter isso se tivesse acesso ao lado do servidor?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim. Incluo o código javascript através de <script src="nomedoscript.js"></script>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

xmlHttp.setRequestHeader("encoding", "ISO-8859-1");

mete isto deppois do xmlHttp.open

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nops... Os pontos de interrogação aparecem à mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta <script src="nomedoscript.js" charset="iso-8859-1"></script>

Podes é ter problemas de charset na base de dados... daí o output não sair como queres.

O meu conselho é:

HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="nomedoscript.js" charset="utf-8"></script>

JavaScript: xmlHttp.setRequestHeader("encoding", "utf-8");

MySQL: colocares tudo utf-8 general ci (salvo erro não tenho nenhuma instância aberta)

PHP: header('Content-Type: text/html; charset=utf-8');

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te esqueças que está a funcionar perfeitamente em todos os outros browsers. Aliás, se eu me limitar a mostrar a tabela com mysql_queries a partir de php funciona limpinho em todos os browsers porque os encodings estão todos certos. Só dá problema no httpRequest a partir de js - no ie.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te esqueças que está a funcionar perfeitamente em todos os outros browsers. Aliás, se eu me limitar a mostrar a tabela com mysql_queries a partir de php funciona limpinho em todos os browsers porque os encodings estão todos certos. Só dá problema no httpRequest a partir de js.

Ah, li o teu post um pouco na diagonal não tinha entendido isso :D.

Tentaste: <script src="nomedoscript.js" charset="iso-8859-1"></script> ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tentei e continua a não funcionar lol. Acho que o encoding do script está bem por definição. O problema é de certeza quando faz o request, que está a devolver "porcaria".

Nos outros browsers não dá problema porque o overrideMimeType("text/html; charset=iso-8859-1"); trata do assunto. Mas não consigo encontrar alternativa para o ie.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta assim

xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

mete isto deppois do xmlHttp.open

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xmlHttp.setRequestHeader("encoding", "ISO-8859-1");

e com estes 2 juntos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora