- 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
- Busque y edite el archivo php.ini de su servidor.
- Busque una línea que contenga la cadena always_populate_raw_post_data.
- 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.
- Compruebe que la línea completa sea
always_populate_raw_post_data=-1(debe terminar con «=-1»). - 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).