2011-03-29 12 views
6

Tengo varias funciones JS que llaman a diferentes archivos php con el método $ .ajax jquery ... ayer todo estaba bien, pero después de limpiar mi código, no sé lo que hice, pero ahora la respuesta Ajax es como "[space]data" en lugar de "data" ..cosa extraña, la respuesta ajax incluye espacios en blanco

que podría utilizar una función de ajuste de Js pero quiero fijar el origen del problema ...

todos mis archivos php han pasado los desaparecidos ?> para evitar eso, y antes de <?php estoy seguro, acabo de verificar, no hay espacio ...

¿cómo es que presenté este error? es el servidor? ¿el navegador?

Lo curioso es que ayer limpié mi código con JSLINT ..! mala idea ..

gracias

+0

No estoy seguro de cómo se espera que sepamos esto sin ningún código ... – Dutchie432

+0

¿Algún código php para mostrar? – Neal

+0

código phph no es influyente ... es solo Francesco

Respuesta

18

Cuando tuve el mismo problema que era sólo un retorno de carro o espacio después de la etiqueta de cierre PHP, una cosa sorprendentemente fácil de introducir por accidente.

Asegúrese de abrir la etiqueta PHP al comienzo de la primera línea de su script, ciérrela al final y elimine todo después de la etiqueta cerrada (debería ser fácil de detectar en un buen editor).

No veo ninguna razón por la cual no cerrar tu etiqueta PHP no sería realmente molesto ... ¡pero así soy yo!

+0

sí, pensé que ... de hecho, tuve que pasar por todos los archivos secundarios y de los niños y finalmente encontré el espacio extra **. gracias – Francesco

+1

PHP trata EOF como equivalente a una etiqueta PHP de cierre. Por lo tanto, una etiqueta PHP de cierre al final de un archivo es redundante. Y, como habrás descubierto, es propenso a errores. Además de romper las solicitudes AJAX, puedes enviar algunas versiones de IE al modo peculiar si tienes espacio en blanco antes de tu DOCTYPE. En mi trabajo diario, hacemos un hábito para dejar de lado la etiqueta PHP de cierre, y nunca la uso en mi trabajo personal. – JAAulde

+0

También encontré UTF BOM al comienzo de todos los archivos incluidos que estaban agregando espacios.Reservé los archivos sin las listas de materiales –

0

Si su respuesta del servidor incluye el espacio extra, entonces el código php es la causa. Si su respuesta no incluye el espacio extra, entonces el problema debe estar en javascript.

Utilice Fiddler para examinar la respuesta real del servidor para ver si realmente tiene espacio. Entonces sabrá con certeza si el problema es con PHP o JS. Entonces puedes publicar el código relevante.

9

Sé que llegué tarde este tema, lo encontré porque tenía el mismo problema. Pude confirmar que aunque puede borrar todo el espacio en su función de devolución de llamada, aún es posible obtener estos retornos de espacio en blanco/carro en su texto de respuesta (incluso puede ver esto en las herramientas de desarrollo de Chrome en la "Red") lengüeta).

Así que probé y encontré que si coloca ob_clean(); en la parte superior de su función de devolución de llamada, borra cualquiera de esos espacios. No sé mucho sobre esta función solo que fue mencionada en el codex (http://codex.wordpress.org/AJAX_in_Plugins#Debugging). Espero que ayude a alguien más que encuentre el camino aquí por el mismo problema

+1

También desde que encontré esta [explicación útil] (http://stackoverflow.com/a/4401992/1058371) – Xtremefaith

Cuestiones relacionadas