Foros del Web » Programando para Internet » Javascript »

Codificación URL en AJAX

Estas en el tema de Codificación URL en AJAX en el foro de Javascript en Foros del Web. Saludos! Espero me puedan ayudar con este tema, que está algo complicado para mi... Tengo una función AJAX que ha funcionado correctamente por años y ...
  #1 (permalink)  
Antiguo 11/05/2012, 09:22
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Codificación URL en AJAX

Saludos!

Espero me puedan ayudar con este tema, que está algo complicado para mi...

Tengo una función AJAX que ha funcionado correctamente por años y está implementada en todo un sistema web.

Resulta que hace poco nos cambiamos de servidor y posee algunas diferencias de caracteres, lo que nos dió algunos problemas que ya hemos solucionado, pero a la vez ha aparecido uno nuevo y esta vez tiene que ver con Javascript.

Cuando completo un formulario y presiono el botón de enviar, los caracteres como tildes o eñes no se muestran correctamente.

Este es un resumen de la funcion AJAX que uso:

Código Javascript:
Ver original
  1. function GET_ajax(http,div_name,frm_name) {
  2.     var GET_xmlhttp = false;
  3.     var frm = false
  4.     var url = "";
  5.     try { GET_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  6.     catch (e) { try { GET_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  7.     catch (e) { try { GET_xmlhttp = new XMLHttpRequest(); }
  8.     catch (e) { GET_xmlhttp = false; }}}
  9.     if (!GET_xmlhttp) return null;
  10.     frm = document.getElementById(frm_name);
  11.     url = "frm_name=" + frm_name;
  12.     for (i = 0; i < frm.elements.length; i++) {
  13.         url = url + "&" + frm.elements[i].name + "=" + escape(frm.elements[i].value);
  14.     }
  15.     GET_xmlhttp.open("GET", http + ".php?" + url, true);
  16.     GET_xmlhttp.setRequestHeader('Content-type', "application/x-www-form-urlencoded; charset=utf-8");
  17.     GET_xmlhttp.onreadystatechange = function() {
  18.         if (GET_xmlhttp.readyState == 4) {
  19.             // Aqui muestro el contenido de GET_xmlhttp en el elemento div_name
  20.         }
  21.     }
  22.     GET_xmlhttp.send(null);
  23.     return false;
  24. }

el problema lo estoy teniendo con la variable "url" que lleva una cadena get, si pongo un alert de esta variable obtengo algo como esto cuando envío la palabra señor:

frm_name=form_main&mail=Se%F1or%20&action=save&but ton=Guardar

este valor se envía y php no puede leerla correctamente. lo extraño es que antes funcionaba bien, no se me ocurre que pueda estar saliendo mal, agradecería cualquier ayuda!

Gracias
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 11/05/2012, 11:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Codificación URL en AJAX

lo más probable es que tu php no esté codificado como utf-8.
Y si lo está, tu server esté pasando otro headers para los mismos, además (php es por defecto iso-8859).
agregá al inicio de tu php (la primera linea, y sin ninguna linea o espacio previos)

Código PHP:
Ver original
  1. header("Content-Type: text/html;charset=utf-8");

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 11/05/2012, 11:46
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Codificación URL en AJAX

Funciono! ya había cambiado el cabezal de php a utf-8, pero había olvidado que esa página era llamada con AJAX, por lo tanto tenía que volver a enviar el cabezal

Gracias, no te había visto antes pero al menos todas las respuestas tuyas que he visto hoy han sido respuestas perfectas, espero que te quedes un buen tiempo por aquí!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 11/05/2012, 12:29
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Codificación URL en AJAX

Cita:
Iniciado por stramin Ver Mensaje
Funciono! ya había cambiado el cabezal de php a utf-8, pero había olvidado que esa página era llamada con AJAX, por lo tanto tenía que volver a enviar el cabezal

Gracias, no te había visto antes pero al menos todas las respuestas tuyas que he visto hoy han sido respuestas perfectas, espero que te quedes un buen tiempo por aquí!
Por aquí estaremos
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.