- ステータス
- 解決済み
問題の概要
一部のウェブサイトでは、翻訳管理ダッシュボードまたは翻訳管理の翻訳ジョブページで以下のJavaScriptコンソールエラーが発生する場合があります。
app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
このエラーにより、次のような一連のPHP警告も発生します。
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
このエラーはPHP 5.6を実行しているウェブサイトに特有のものであり、PHPのこの変更の作成者がここで説明しているように、$HTTP_RAW_POST_DATAグローバル変数に値が設定された際に(使用されていない場合でも)PHPによってトリガーされる非推奨警告が原因です。
[…] 非推奨メッセージをトリガーする現在の方法は少し最適ではありません($HTTP_RAW_POST_DATA変数にアクセスしようとしたときではなく、$HTTP_RAW_POST_DATAに値が設定されたときにメッセージが表示されます)。
この警告には、非推奨通知を削除する方法が説明されています。
回避策
php.iniファイルの編集
- サーバーのphp.iniファイルを見つけて編集します。
- always_populate_raw_post_dataという文字列を含む行を探します。
- 行がセミコロン(;)で始まっている場合、それはコメントアウトされている(使用されていない)ことを意味します。この場合は、セミコロンを削除してください。
- 行全体が
always_populate_raw_post_data=-1であることを確認します(「=-1」で終わる必要があります)。 - サーバーを再起動します。
PHPのアップグレード
PHPをより新しいバージョン(7.1以降)にアップグレードすると、非推奨の警告が解消されます。
PHP 7.1はPHP 5.6よりもはるかに高速です。
PHP 5.6は2019年1月1日にサポート期間を終了しました。これは「サポートされなくなったリリース」であることを意味します。「このリリースのユーザーは、パッチが適用されないセキュリティの脆弱性にさらされる可能性があるため、できるだけ早くアップグレードする必要があります」(ソース:https://www.php.net/supported-versions.php)。