Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

pedrosorio

AJAX: overrideMimeType

Mensagens Recomendadas

pedrosorio

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.


Não respondo a dúvidas por mensagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
esquima

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

mete isto se tiveres acesso ao lado do servidor

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrosorio

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


Não respondo a dúvidas por mensagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrosorio

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


Não respondo a dúvidas por mensagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
skin

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');


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrosorio

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.


Não respondo a dúvidas por mensagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
skin

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> ?


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrosorio

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.


Não respondo a dúvidas por mensagem.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
esquima

tenta assim

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

mete isto deppois do xmlHttp.open

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
esquima

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

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

e com estes 2 juntos

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.