Я знаю, что это распространенный вопрос, но я продолжаю получать эту ошибку при извлечении данных:
SyntaxError: Неожиданный токен u в JSON в позиции 1 в JSON.parse ()
Это произошло, когда я тестировал свой полный код, поэтому я проверил с помощью
res.send(JSON.stringify({"data": "test"}));
На стороне клиента я использую этот код:
fetch(url) // fetch works
.then(checkStatus) // checks for errors, if none send response text
.then(function (responseText) {
let data = JSON.parse(responseText); // where I'm getting the error
При тестированиизначения, все на моей стороне сервера печатает правильные значения.Однако, когда я использую console.log для распечатки responseText на стороне клиента, я получаю это:
f text () {[native code]}
Почему эта ошибка вызывается?Из анализа переполнения стека я понимаю, что эта ошибка возникает, когда я пытаюсь проанализировать строку, которая не определена.Я поставил оператор if перед анализом, чтобы проверить, что строка не определена:
if (responseText === undefined) {
console.log("responseText is undefined");
}
Но она не выводится, так что строка действительно не определена?Как примечание, узел обновлен.Спасибо за помощь. Если ответ на другой вопрос, пожалуйста, дайте мне знать.Я не нашел решения этой проблемы.
Редактировать:
function checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
return response.text;
} else if (response.status === 404) {
clear();
return Promise.reject(new Error("Sorry, we couldn't find that page"));
} else {
console.log(response.text());
return Promise.reject(new Error(response.status + ": " + response.statusText));
}
}
Редактировать: response.text должен быть response.text ().Это дало мне мою ошибку.