- Status
- Gelöst
Übersicht über das Problem
Bei einigen Websites kann der folgende JavaScript-Konsolenfehler auf den Seiten Übersetzungsmanagement-Dashboard oder Übersetzungsmanagement-Aufträge auftreten:
app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
Dieser Fehler führt auch zu einer Reihe von PHP-Warnungen wie der folgenden:
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
Der Fehler tritt speziell auf Websites auf, die PHP 5.6 verwenden, und wird durch eine Veraltungswarnung verursacht, die von PHP ausgelöst wird, wenn die globale Variable $HTTP_RAW_POST_DATA befüllt wird (selbst wenn sie nicht verwendet wird), wie hier vom Autor dieser Änderung in PHP erklärt:
[…] die aktuelle Methode zum Auslösen der Veraltungsmeldung ist etwas suboptimal (wir zeigen Ihnen die Meldung nicht an, wenn Sie versuchen, auf die Variable $HTTP_RAW_POST_DATA zuzugreifen, sondern wenn $HTTP_RAW_POST_DATA befüllt wird.
Die Warnung erklärt, wie der Veraltungshinweis entfernt werden kann.
Problemumgehung
Die Datei php.ini bearbeiten
- Suchen und bearbeiten Sie die php.ini-Datei Ihres Servers.
- Suchen Sie nach einer Zeile, die den String always_populate_raw_post_data enthält.
- Wenn die Zeile mit einem Semikolon (;) beginnt, bedeutet dies, dass sie auskommentiert ist (und nicht verwendet wird). Entfernen Sie in diesem Fall das Semikolon.
- Überprüfen Sie, ob die vollständige Zeile
always_populate_raw_post_data=-1lautet (sie muss mit „=-1“ enden). - Starten Sie Ihren Server neu.
PHP-Upgrade
Ein Upgrade von PHP auf eine neuere Version (7.1 oder höher) entfernt die Deprecation-Warnung.
PHP 7.1 ist viel schneller als PHP 5.6.
PHP 5.6 hat am 1. Januar 2019 das Ende seiner Lebensdauer erreicht. Dies bedeutet, es handelt sich um eine „Version, die nicht mehr unterstützt wird. Benutzer dieser Version sollten so schnell wie möglich ein Upgrade durchführen, da sie ungepatchten Sicherheitslücken ausgesetzt sein könnten.“ (Quelle: https://www.php.net/supported-versions.php).