Làm cách nào để khắc phục lỗi cú pháp mã thông báo không mong muốn?
Hướng dẫn này sẽ giúp khắc phục Show
Tóm lượcCác lỗi này cho biết mã JavaScript của bạn dự kiến sẽ nhận được JSON nhưng thay vào đó lại nhận được một thứ khác (có thể là HTML ở dạng lỗi phía máy chủ). Để khắc phục sự cố, bạn cần kiểm tra những gì bạn nhận được thay vì JSON dự kiến để xác định vấn đề là gì Thông tin chi tiếtThông thường, lỗi này xảy ra khi máy chủ của bạn trả về HTML (thường bắt đầu bằng Để khắc phục lỗi này, bạn cần tìm ra lý do tại sao bạn nhận được HTML (hoặc thứ gì đó khác) thay vì JSON mà bạn mong đợi. Để làm điều này, bạn cần ghi dữ liệu bạn đang cố phân tích vào bảng điều khiển Nếu bạn đang sử dụng var responseClone; // 1 fetch('https://example.com/some/path/to/json') .then(function (response) { responseClone = response.clone(); // 2 return response.json(); }) .then(function (data) { // Do something with data }, function (rejectionReason) { // 3 console.log('Error parsing JSON from response:', rejectionReason, responseClone); // 4 responseClone.text() // 5 .then(function (bodyText) { console.log('Received the following instead of valid JSON:', bodyText); // 6 }); });0Sử dụng phương pháp này nếu mã của bạn trông giống như thế này fetch('https://example.com/some/path/to/json') .then(function (response) { return response.json(); }) .then(function (data) { // Do something with data }); Trong trường hợp này, lỗi xảy ra khi var responseClone; // 1 fetch('https://example.com/some/path/to/json') .then(function (response) { responseClone = response.clone(); // 2 return response.json(); }) .then(function (data) { // Do something with data }, function (rejectionReason) { // 3 console.log('Error parsing JSON from response:', rejectionReason, responseClone); // 4 responseClone.text() // 5 .then(function (bodyText) { console.log('Received the following instead of valid JSON:', bodyText); // 6 }); });1 cố gắng chạy và không phân tích được dữ liệu từ máy chủ dưới dạng JSON. Bạn có thể thêm một chức năng để xử lý lỗi và hiển thị văn bản thô của nội dung phản hồi từ máy chủ và ghi nó vào bảng điều khiển (xem ghi chú về các dòng nhận xét bên dưới) var responseClone; // 1 fetch('https://example.com/some/path/to/json') .then(function (response) { responseClone = response.clone(); // 2 return response.json(); }) .then(function (data) { // Do something with data }, function (rejectionReason) { // 3 console.log('Error parsing JSON from response:', rejectionReason, responseClone); // 4 responseClone.text() // 5 .then(function (bodyText) { console.log('Received the following instead of valid JSON:', bodyText); // 6 }); }); Đây là một lời giải thích của mỗi dòng với một bình luận được đánh số
Nếu bạn đang sử dụng try { JSON.parse(data); } catch (error) { console.log('Error parsing JSON:', error, data); }0Sử dụng phương pháp này nếu mã gây ra lỗi trông như thế này JSON.parse(data); Trong trường hợp này, bạn có thể ghi dữ liệu vào bảng điều khiển nếu gặp lỗi để xem nó chứa gì try { JSON.parse(data); } catch (error) { console.log('Error parsing JSON:', error, data); } Tôi làm gì tiếp theo?Khi bạn có thể thấy dữ liệu gây ra lỗi phân tích cú pháp JSON, hy vọng nó sẽ cung cấp manh mối về lý do tại sao bạn không nhận được JSON hợp lệ như mong đợi. Một số vấn đề phổ biến nhất dẫn đến lỗi này là
|