Ошибка Unexpected token < in JSON at position 0
скорее всего означает, что вы получили HTML вместо JSON. (Представьте, что парсинг <html>.....
как JSON - тогда первый символ <
, который недопустим JSON.)
Вы можете временно использовать response.text()
вместо response.json()
, а затем распечатать res
вы получили, так что вы можете увидеть фактическое содержимое, прежде чем вам не удастся проанализировать их как JSON. (В идеале вы должны использовать прокси-сервер отладки, чтобы увидеть, что происходит на самом деле, или просто использовать DevTools и посмотреть на вкладку сети!)
Я бы предположил, что ваш сервер показывает ошибку, и это выглядит как HTML.
На самом деле, я обнаружил еще одну проблему в вашем коде, которая может быть причиной вашего недействительного запроса:
var url = "https://adekunletestprojects.000webhostapp.com/skog/addComment.php?email" + email + "&number=" + phone + "&comment=" + comm;
Код здесь есть "?email" + email
, который сгенерирует что-то вроде ?emailjohn@doe.com
, что, вероятно, не то, что вы хотите. Здесь вы пропускаете знак равенства: "?email=" + email
Но есть другая проблема: вы не кодируете значения. Что делать, если адрес электронной почты установлен на john&alice=bob@doe.com
? Тогда у вас будет ?email=john&alice=bob@doe.com
, что вам тоже не нужно. (Или представьте текст комментария , содержащий &
, что более вероятно.)
Если бы это было в браузере или node.js, вам лучше использовать объект URL
, но в NativeScript у вас этого нет. Таким образом, вы просто используете encodeURIComponent
для кодирования каждого отдельного значения:
var url = "https://adekunletestprojects.000webhostapp.com/skog/addComment.php?email=" +
encodeURIComponent(email) + "&number=" + encodeURIComponent(phone) + "&comment=" +
encodeURIComponent(comm);
Или вы можете написать вспомогательную функцию, которая сделает это за вас, и получить более чистый код:
const buildQuery = params => Object.entries(params)
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join('&')
// Later on:
const query = buildQuery({ email: email, number: phone, comment: comm })
const url = `https://adekunletestprojects.000webhostapp.com/skog/addComment.php?${query}`