WPML
Estado
Resuelto

Resumen del problema

Algunos sitios web pueden encontrarse con el siguiente error en la consola de JavaScript en el escritorio de Gestión de traducción o en las páginas de trabajos de Gestión de traducción:

app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

Este error también producirá una serie de advertencias de PHP como las siguientes:

PHP Warning: Cannot modify header information - headers already sent in /app/public/wp-includes/rest-api/class-wp-rest-server.php on line 1258

PHP Stack trace:

PHP 1. {main}() /app/public/index.php:0

PHP 2. require() /app/public/index.php:17

PHP 3. wp() /app/public/wp-blog-header.php:16

PHP 4. WP->main() /app/public/wp-includes/functions.php:1105

PHP 5. WP->parse_request() /app/public/wp-includes/class-wp.php:737

PHP 6. do_action_ref_array() /app/public/wp-includes/class-wp.php:387

PHP 7. WP_Hook->do_action() /app/public/wp-includes/plugin.php:531

PHP 8. WP_Hook->apply_filters() /app/public/wp-includes/class-wp-hook.php:310

PHP 9. call_user_func_array:{/app/public/wp-includes/class-wp-hook.php:286}() /app/public/wp-includes/class-wp-hook.php:286

PHP 10. rest_api_loaded() /app/public/wp-includes/class-wp-hook.php:286

PHP 11. WP_REST_Server->serve_request() /app/public/wp-includes/rest-api.php:309

PHP 12. WP_REST_Server->send_header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:224

PHP 13. header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:1258

El error es específico de los sitios web que ejecutan PHP 5.6 y se debe a una advertencia de obsolescencia activada por PHP cuando se rellena la variable global $HTTP_RAW_POST_DATA (incluso si no se utiliza), como explica aquí el autor de este cambio en PHP:

[…] la forma actual de activar el mensaje de obsolescencia es un poco subóptima (no le mostramos el mensaje cuando intenta acceder a la variable $HTTP_RAW_POST_DATA, sino cuando se rellena $HTTP_RAW_POST_DATA).

La advertencia explica cómo eliminar el aviso de obsolescencia.

Solución alternativa

Editar el archivo php.ini


  1. Busque y edite el archivo php.ini de su servidor.

  2. Busque una línea que contenga la cadena always_populate_raw_post_data.

  3. Si la línea comienza con un punto y coma (;), significa que está comentada (y no se está utilizando). En este caso, elimine el punto y coma.

  4. Compruebe que la línea completa sea always_populate_raw_post_data=-1 (debe terminar con «=-1»).

  5. Reinicie su servidor.

Actualizar PHP


Actualizar PHP a una versión más reciente (7.1 o superior) eliminará la advertencia de obsolescencia.

PHP 7.1 es mucho más rápido que PHP 5.6.

PHP 5.6 llegó al final de su vida útil el 1 de enero de 2019. Esto significa que es una «versión que ya no cuenta con soporte. Los usuarios de esta versión deben actualizar lo antes posible, ya que pueden estar expuestos a vulnerabilidades de seguridad sin parchear». (fuente: https://www.php.net/supported-versions.php).

Todos los problemas conocidos →