Я удивлен, узнав, что решение заключалось в использовании следующего ...
console.log(jQuery.parseJSON(data).message);
Я считаю, что причина его неудачи в том, что ваш PHP возвращает следующую строку примера обратно клиент, который клиент не может преобразовать в объект (который $.ajax
попытается сделать по умолчанию).
Error: XXX<br>xxx{"success":false,"message":"Error"}
var jsonReturn = 'Error: XXX<br/>xxx{"success":false,"message":"Error"}';
console.log(jQuery.parseJSON(jsonReturn).message);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Вместо этого я предлагаю вам удалить первый echo
из вашего PHP и вместо этого добавить новый элемент в ваш массив ...
// echo "Error: " . $upquery . "<br>" . $conn->error;
echo json_encode(array('success' => false,
'message' => "Error",
'error' => $upquery . "<br>" . $conn->error));
Это должно привести к правильно сформированной строке JSON, которая может быть проанализирована, означая, что переменная data
в success:function(data)
- это объект, который вы ожидаете ...
{"success":false,"message":"Error","error":"XXX<br>xxx"}
var jsonReturn = '{"success":false,"message":"Error","error":"XXX<br/>xxx"}';
console.log(jQuery.parseJSON(jsonReturn).message);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>