WPML
Stato
Risolto

Panoramica del problema

Alcuni siti web potrebbero riscontrare il seguente errore nella console JavaScript nella Bacheca di Gestione traduzioni o nelle pagine dei Lavori di Gestione traduzioni:

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

Questo errore produrrà anche una serie di avvisi PHP come i seguenti:

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

L’errore è specifico per i siti web che eseguono PHP 5.6 ed è causato da un avviso di deprecazione generato da PHP quando la variabile globale $HTTP_RAW_POST_DATA viene popolata (anche se non viene utilizzata), come spiegato qui dall’autore di questa modifica in PHP:

[…] l’attuale metodo per generare il messaggio di deprecazione è un po’ subottimale (non ti mostriamo il messaggio quando provi ad accedere alla variabile $HTTP_RAW_POST_DATA, ma quando $HTTP_RAW_POST_DATA viene popolata.

L’avviso spiega come rimuovere la notifica di deprecazione.

Soluzione alternativa

Modificare il file php.ini


  1. Trova e modifica il file php.ini del tuo server.

  2. Cerca una riga che contiene la stringa always_populate_raw_post_data.

  3. Se la riga inizia con un punto e virgola (;), significa che è commentata (e non viene utilizzata). In questo caso, rimuovi il punto e virgola.

  4. Verifica che l’intera riga sia always_populate_raw_post_data=-1 (deve terminare con “=-1”).

  5. Riavvia il tuo server.

Eseguire l’upgrade di PHP


L’upgrade di PHP a una versione più recente (7.1 o successiva) rimuoverà l’avviso di deprecazione.

PHP 7.1 è molto più veloce di PHP 5.6.

PHP 5.6 ha raggiunto il termine del suo ciclo di vita il 1° gennaio 2019. Questo significa che è una “versione che non è più supportata. Gli utenti di questa versione dovrebbero eseguire l’upgrade il prima possibile, poiché potrebbero essere esposti a vulnerabilità di sicurezza non corrette.” (fonte: https://www.php.net/supported-versions.php).

Tutti i problemi noti →