WPML
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


  1. Suchen und bearbeiten Sie die php.ini-Datei Ihres Servers.

  2. Suchen Sie nach einer Zeile, die den String always_populate_raw_post_data enthält.

  3. Wenn die Zeile mit einem Semikolon (;) beginnt, bedeutet dies, dass sie auskommentiert ist (und nicht verwendet wird). Entfernen Sie in diesem Fall das Semikolon.

  4. Überprüfen Sie, ob die vollständige Zeile always_populate_raw_post_data=-1 lautet (sie muss mit „=-1“ enden).

  5. 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).

Alle bekannten Probleme →