Показать сообщение отдельно
  #21 (permalink)  
Старый 13.08.2019, 10:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

У вас вообще серверный код странный, если не сказать более. Допустим, что это

if (isset($_POST['place_id']) && intval($_POST['place_id'])){
     FavPlaces::setFavs(intval($_POST['place_id']), 'UF_FAV_PLACE');
}


еще можно трактовать как запрос без ответа, то есть что-то сделать на сервере по запросу клиента и все, а далее все ответы. Но тогда (JSON.parse на клиенте в этом случае не нужен, но нужно учесть как действует JQ при разборе json):

if (isset($_POST['action'])){
    $id = (int)$_POST['place_id']; $data = null;
    switch($_POST['action']){
        case 'setfavplace':
            if ($id) FavPlaces::setFavs($id, 'UF_FAV_PLACE');
            break;
        case 'getfavplace': $data = FavPlaces::getFavs();
            break;
        case 'setPlace':
            if ($id) $data = FavPlaces::setPlace($id);
            break;
        case 'getPlace': $data = FavPlaces::getPlace();
    }
    
    header('Content-type: application/json');
    exit(json_encode($data));
}


Если при этом данные корректны, а значит и ошибок в JSON не будет (собственно в этом случае ошибка была бы уже на сервере). У вас же ошибка указывает на то, что данные json при декодировании неожиданно закончились. Проверить нужно по самое не хочу ответ сервера.

PS. РНР при разборе принятых данных и сам сделает преобразование типов, если число будет числом, а не "числом", заниматься этим на клиенте нет смысла, вы все равно вынуждены проверить тип/преобразовать и проверить.

Последний раз редактировалось laimas, 13.08.2019 в 11:19.
Ответить с цитированием