Перейти к содержимому


Пользователь месяца
OlgaGetman OlgaGetman 1-й за Декабрь
Очков активности: 2100 10 тем, 170 сообщений, 7 баллов репутации
ТОП самых активных за этот месяц
  • Фотография Ixman
    #1

    Ixman (o5cat.ru)
    Очков активности: 243 Вне конкурса за определение пользователя месяца

  • Фотография Андрей WPMasterKZ
    #2

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 153 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #3

    BLIK
    Очков активности: 132 0 тем, 22 сообщения, 4 балла репутации

  • Фотография OlgaGetman
    #4

    OlgaGetman
    Очков активности: 91.5 Вне конкурса за определение пользователя месяца

  • Фотография Cheaplinks
    #5

    Cheaplinks (cheaplinks.pro)
    Очков активности: 63 0 тем, 21 сообщение, 2 балла репутации

  • Фотография Mandarin
    #6

    Mandarin
    Очков активности: 60 0 тем, 40 сообщений, 1 балл репутации

  • Фотография TimurR
    #7

    TimurR
    Очков активности: 54 Вне конкурса за определение пользователя месяца

  • Фотография Ilya74
    #8

    Ilya74
    Очков активности: 51 0 тем, 17 сообщений, 2 балла репутации

  • Фотография Constantine
    #9

    Constantine
    Очков активности: 48 5 тем, 17 сообщений, 1 балл репутации

  • Фотография ShowPrint
    #10

    ShowPrint (ShowPrint.ru)
    Очков активности: 36 Вне конкурса за определение пользователя месяца

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 25.12.2018
  • Яндекс выдача: 22.01.2019
Топ 5 участников по репутации


Проблема с JSON

#1 ShowPrint

ShowPrint
  • Пользователь PRO
  • 3102 сообщений
  • Репутация: 864
0

Отправлено 09 November 2017 - 20:55

Всем привет.

Пытаюсь освоить ajax-загрузку файлов. Саму загрузку вроде одолел с трудом - всё грузится. Застопорился на этапе обработки результатов загрузки (success) .

 

Функция загрузки:

Спойлер

 

Обработчик "тестовый":

Спойлер

 

Консоль выдаёт ошибку JSON.parse():

Untitled-1.png

 

При том, что сама-же консоль в ответе определяет тип данных именно как json:

Untitled-2.png

 

@yury@Ixman, @miketomlin@fedornabilkin, и другие ГУРУ - подкиньте, идею в чём может быть проблема, плиииззз...

 

Заранее признателен.


 

Проблема решена.

 

Сообщение отредактировал ShowPrint: 09 November 2017 - 20:56

  • 1
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


#2 Ixman

Ixman
  • Пользователь PRO
  • 3026 сообщений
  • Репутация: 792

Отправлено 09 November 2017 - 21:57

Михаил, я в своё время пытался изобрести такой же велосипед, но где-то тоже наступил на грабли и решил использовать стороннее решение. Это конечно плохо, но зато я сэкономил время.


  • 0


#3 ShowPrint

ShowPrint
    Topic Starter
  • Пользователь PRO
  • 3102 сообщений
  • Репутация: 864

Отправлено 09 November 2017 - 23:59

@Ixman, Иван, жалко бросать велосипед когда он на ходу, но небольшая восьмерка на колесе. Попробую ещё выровнять восьмёрку "натяжкой спиц".

Нагуглил что чаще всего такие ошибки появляются когда в json попадают не символьные переменные. Попробую ещё поэкспериментировать с обработчиком.

Спасибо за участие
  • 1
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


#4 Ixman

Ixman
  • Пользователь PRO
  • 3026 сообщений
  • Репутация: 792

Отправлено 10 November 2017 - 09:56

@ShowPrint, если что-то получиться, то я буду рад узнать что и как.


  • 1


#5 ShowPrint

ShowPrint
    Topic Starter
  • Пользователь PRO
  • 3102 сообщений
  • Репутация: 864

Отправлено 10 November 2017 - 11:00

если что-то получиться, то я буду рад узнать что и как
Иван, ну тебе-то известно, что "восьмерка" на колесе исправляется элементарно, это современная молодежь в таких случаях тащит велик в ремонт или выбрасывает и покупает новый.  :)

 

Ночером пришла в голову мысля что, как и в какой последовательности проверить надо, тем более что у меня есть пара-тройка функций которые работают с json (написанные после твоей подсказки - эзотерического "пинка")  :)

 

Собственно по шагам:

1. Воткнул в обработчик возврат "тестового" json, не связанного с вытаскиваемыми данными:

$_Result=array("Name"=>"FileName.jpg","Size"=>"123456789");
echo json_encode($_Result);

Результат: ошибка сохранилась (в других функциях всё в норме).

Вывод: что-то не так в JS-функции.

 

2. Посмотрел по справочнику параметры функции $.ajax и сравнил с другими своими рабочими вариантами.

Ошибка сразу нашлась.  :) Как говорится

 

 

Дело было не в бобине, дело было не в реле - раздолбай сидел в кабине и мчудила на крыле

 

Вариантов решения оказалось два, поправить надо JS-функцию, оба варианта они вытекают из:

 

 

Вызов JSON.parse(str) превратит строку с данными в формате JSON в JavaScript-объект/массив/значение.

 

Вариант 1. Убрать строку

dataType: 'json',

В этом случае результат получается как строка, которую можно распарсить в json

 

Вариант 2. Убрать строку

var jsonData=JSON.parse(jsonResult);

В этом случае просто продолжать работу с jsonResult  как с json

 

Ошибка кода в стартпосте заключалась в том, что возвращаемый php-обработчиком результат уже был объявлен как json, а я его пытался распарсивать как строку, как результат - получал то, что получал в консоли  :)

 

Оффтопик
 


  • 0
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/




Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru