Первое, что нужно сделать, это добавить заголовок в ваш PHP типа контента (application / json).
header('Content-Type: application/json');
Дальше, вероятно, ваш JSON плохо сформирован. Вместо использования
response.json()
пытается использовать
response.text()
это должно вернуть строку с сервера.
Возможно, в вашем PHP есть сообщение об ошибке, которое возвращается в ответе, или неправильно сформированный JSON.
Как общая точка рефакторинга. Подумайте об использовании ловушек try в своем коде, чтобы не вылетать из приложения, когда вы сталкиваетесь с не показанным стопором, подобным этому.
Как:
getFate = async () => {
let user = await AsyncStorage.getItem('email');
fetch('fetch address goes here', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application.json',
},
body: JSON.stringify({
email: user
})
}).then((response) => response.text())
.then((responseTxt) => {
//Console log out the response, so you can see the response
console.log(responseTxt);
}).catch((error) => {
console.error(error);
});
}
ОП указал, что ответ от сервера неверен.
Кажется, специальные символы нарушают ваш ответ. Можете ли вы использовать функцию QUOTE в MySQL?
https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_quote