WPML
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


  1. Tìm và chỉnh sửa tệp php.ini trên máy chủ của bạn.

  2. Tìm dòng chứa chuỗi văn bản always_populate_raw_post_data.

  3. 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.

  4. 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”).

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

Tất cả các lỗi đã ghi nhận →