quinta-feira, 10 de abril de 2014

Descobri um problema irritante com o IE7/8, e a sua implementação de AJAX.
Basicamente, se usarem JQuery, para fazer pedidos ao servidor, estes são feitos, usando o charset "UTF-8", e está documentado. Funciona correctamente se usarmos browsers considerados "normais", como: Firefox, Chrome, etc... mas no caso do IE não podia ser assim não é verdade ...
No caso do IE7, o pedido vai para o servidor e leva o "header" ("Content-Type:") correctamente definido, mas o IE7, simplesmente não faz a conversão dos dados para o formato correcto.
Para funcionar em IE7/8, é necessário forçar o contentType na chamada ajax do JQuery, semelhante a isto:

$("form#myForm").ajaxForm(
 {
  contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
  success:
   function( data )
   {
    alert( 'success' );
   }
 } );

Sem comentários: