Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не понятки с JSON (https://javascript.ru/forum/jquery/61036-ne-ponyatki-s-json.html)

sergei1094 01.02.2016 21:50

Цитата:

Сообщение от laimas (Сообщение 405974)
Тип принимаемых данных в запросе изменить на text, запрос парсить средствами JS - JSON.parse с обработкой исключительных ситуаций. Уверен, что будет ошибка.

В каком браузере отладка?

Mozilla FireFox -> делаю отладку тут. А по поводу JSON.parse, на сколько я знаю что не обязательно использовать данную функцию, если в параметрах отправки указать dataType: 'json'

laimas 01.02.2016 21:50

Оригинальный код - а где вызов функции?

laimas 01.02.2016 21:52

Цитата:

Сообщение от sergei1094
А по поводу JSON.parse, на сколько я знаю что не обязательно использовать данную функцию, если в параметрах отправки указать dataType: 'json'

А вы читаете что вам пишут? JQ вообще тупо промолчит, если самому не побеспокоится, в случае, если парсинг json завершится ошибкой.

sergei1094 01.02.2016 21:55

Цитата:

Сообщение от laimas (Сообщение 405979)
Оригинальный код - а где вызов функции?

Вызов функции висит на onclick по ссылке, вот оригинальный код:

function DeleteUs(data) {

    var user = data;
    var pass;
    var title = "Введите пароль администратора";
    var result = prompt(title, pass);
    
    if(result) {
        
        $.ajax({
            url: "test.php",
            type: "POST",
            data: {password: result},
            dataType: 'json',
            success: function (data) {
                
                var result = data;
                alert(result.name);
                console.log(result.name);
                
            }
        });    
    }
}

laimas 01.02.2016 22:02

А причем тут событие? Действие по умолчанию блокируется, если что-то да есть, и ладно, а так это не важно.

Значит так - не получить объект как результат обработки json в JQ можно либо когда ответа нет (null от сервера), либо данные невалидный json. Как можно проверить написано выше. В FF в отладчике отлично видно и запросы, и ответы сервера, а если их не видим, то их и нет.

sergei1094 01.02.2016 22:03

Изменил на JSON.parse(data); При всём текущем положении, теперь в отладке показывается отправка данных, но ответ приходит пустым


....
type: 'json',
            success: function (data) {
                
                var result = JSON.parse(data);
                alert(result.name);
                console.log(result.name); // распарсим JSON
                
            }

sergei1094 01.02.2016 22:04

Цитата:

Сообщение от laimas (Сообщение 405983)
А причем тут событие? Действие по умолчанию блокируется, если что-то да есть, и ладно, а так это не важно.

Значит так - не получить объект как результат обработки json в JQ можно либо когда ответа нет (null от сервера), либо данные невалидный json. Как можно проверить написано выше. В FF в отладчике отлично видно и запросы, и ответы сервера, а если их не видим, то их и нет.

Но ведь алерты долетали до меня :)

sergei1094 01.02.2016 22:06

oops :-? Глянул сейчас в консоль, а там вот это:
JSON.parse: unexpected character at line 1 column 1 of the JSON data


т.е. ругается на вот эту строку получается

var result = JSON.parse(data);


Я как то не правильно сделал, да?

laimas 01.02.2016 22:16

Да что вы зациклились на клиенте - ошибку надо искать на сервере, там она 100%. Ну сколько можно в ступе толочь - проверять и анализировать ответы сервера всеми доступными способами.
С этим затруднения, так что мешает на время сделать обычный GET запрос, обработать его и результат сразу в браузер? Ajax для выяснения этого и не нужен.

laimas 01.02.2016 22:18

Цитата:

Сообщение от sergei1094
JSON.parse: unexpected character at line 1 column 1 of the JSON data

Сервер отдает не json, а смесь ежика с колючей проволокой. Вам об этом не раз говорилось - ошибки на сервере, ищите.


Часовой пояс GMT +3, время: 10:34.