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

Sign in to follow this  
pedrosorio

AJAX: overrideMimeType

Recommended Posts

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.

Share this post


Link to post
Share on other sites
esquima

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

mete isto se tiveres acesso ao lado do servidor

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites
pedrosorio

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


Não respondo a dúvidas por mensagem.

Share this post


Link to post
Share on other sites
esquima

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

mete isto deppois do xmlHttp.open

Share this post


Link to post
Share on other sites
pedrosorio

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


Não respondo a dúvidas por mensagem.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites
esquima

tenta assim

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

mete isto deppois do xmlHttp.open

Share this post


Link to post
Share on other sites
esquima

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

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

e com estes 2 juntos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.