- Trạng thái
- Đã giải quyết
Tổng quan về lỗi
Một số trang web có thể gặp lỗi console JavaScript sau trên các trang Bảng điều khiển Quản lý dịch thuật hoặc Công việc Quản lý dịch thuật:
app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
Lỗi này cũng sẽ tạo ra một loạt các cảnh báo PHP như sau:
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ỗi này chỉ xảy ra đối với các trang web chạy PHP 5.6 và do một cảnh báo không dùng nữa được PHP kích hoạt khi biến toàn cục $HTTP_RAW_POST_DATA được điền dữ liệu (ngay cả khi nó không được sử dụng), như tác giả của thay đổi này trong PHP đã giải thích tại đây:
[…] cách hiện tại để kích hoạt thông báo không dùng nữa có phần chưa tối ưu (chúng tôi không hiển thị thông báo cho bạn khi bạn cố gắng truy cập biến $HTTP_RAW_POST_DATA, mà là khi $HTTP_RAW_POST_DATA được điền dữ liệu.
Cảnh báo này giải thích cách xóa thông báo không dùng nữa.
Giải pháp tạm thời
Chỉnh sửa tệp php.ini
- Tìm và chỉnh sửa tệp php.ini trên máy chủ của bạn.
- Tìm dòng chứa chuỗi văn bản always_populate_raw_post_data.
- Nếu dòng này bắt đầu bằng dấu chấm phẩy (;), điều đó có nghĩa là nó đã được chú thích (và không được sử dụng). Trong trường hợp này, hãy xóa dấu chấm phẩy.
- Kiểm tra để đảm bảo toàn bộ dòng là
always_populate_raw_post_data=-1(dòng này phải kết thúc bằng “=-1”). - Khởi động lại máy chủ của bạn.
Nâng cấp PHP
Việc nâng cấp PHP lên phiên bản mới hơn (7.1 trở lên) sẽ loại bỏ cảnh báo lỗi thời.
PHP 7.1 nhanh hơn nhiều so với PHP 5.6.
PHP 5.6 đã kết thúc vòng đời vào ngày 1 tháng 1 năm 2019. Điều này có nghĩa đây là “phiên bản phát hành không còn được hỗ trợ. Người dùng phiên bản phát hành này nên nâng cấp càng sớm càng tốt, vì họ có thể gặp phải các lỗ hổng bảo mật chưa được vá.” (nguồn: https://www.php.net/supported-versions.php).