Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.02.2016, 21:50
Интересующийся
Отправить личное сообщение для sergei1094 Посмотреть профиль Найти все сообщения от sergei1094
 
Регистрация: 01.02.2016
Сообщений: 21

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

В каком браузере отладка?
Mozilla FireFox -> делаю отладку тут. А по поводу JSON.parse, на сколько я знаю что не обязательно использовать данную функцию, если в параметрах отправки указать dataType: 'json'
Ответить с цитированием
  #12 (permalink)  
Старый 01.02.2016, 21:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Оригинальный код - а где вызов функции?
Ответить с цитированием
  #13 (permalink)  
Старый 01.02.2016, 21:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от sergei1094
А по поводу JSON.parse, на сколько я знаю что не обязательно использовать данную функцию, если в параметрах отправки указать dataType: 'json'
А вы читаете что вам пишут? JQ вообще тупо промолчит, если самому не побеспокоится, в случае, если парсинг json завершится ошибкой.
Ответить с цитированием
  #14 (permalink)  
Старый 01.02.2016, 21:55
Интересующийся
Отправить личное сообщение для sergei1094 Посмотреть профиль Найти все сообщения от sergei1094
 
Регистрация: 01.02.2016
Сообщений: 21

Сообщение от laimas Посмотреть сообщение
Оригинальный код - а где вызов функции?
Вызов функции висит на 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);
                
            }
        });    
    }
}
Ответить с цитированием
  #15 (permalink)  
Старый 01.02.2016, 22:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

Значит так - не получить объект как результат обработки json в JQ можно либо когда ответа нет (null от сервера), либо данные невалидный json. Как можно проверить написано выше. В FF в отладчике отлично видно и запросы, и ответы сервера, а если их не видим, то их и нет.
Ответить с цитированием
  #16 (permalink)  
Старый 01.02.2016, 22:03
Интересующийся
Отправить личное сообщение для sergei1094 Посмотреть профиль Найти все сообщения от sergei1094
 
Регистрация: 01.02.2016
Сообщений: 21

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


....
type: 'json',
            success: function (data) {
                
                var result = JSON.parse(data);
                alert(result.name);
                console.log(result.name); // распарсим JSON
                
            }
Ответить с цитированием
  #17 (permalink)  
Старый 01.02.2016, 22:04
Интересующийся
Отправить личное сообщение для sergei1094 Посмотреть профиль Найти все сообщения от sergei1094
 
Регистрация: 01.02.2016
Сообщений: 21

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

Значит так - не получить объект как результат обработки json в JQ можно либо когда ответа нет (null от сервера), либо данные невалидный json. Как можно проверить написано выше. В FF в отладчике отлично видно и запросы, и ответы сервера, а если их не видим, то их и нет.
Но ведь алерты долетали до меня
Ответить с цитированием
  #18 (permalink)  
Старый 01.02.2016, 22:06
Интересующийся
Отправить личное сообщение для sergei1094 Посмотреть профиль Найти все сообщения от sergei1094
 
Регистрация: 01.02.2016
Сообщений: 21

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


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

var result = JSON.parse(data);


Я как то не правильно сделал, да?
Ответить с цитированием
  #19 (permalink)  
Старый 01.02.2016, 22:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Да что вы зациклились на клиенте - ошибку надо искать на сервере, там она 100%. Ну сколько можно в ступе толочь - проверять и анализировать ответы сервера всеми доступными способами.
С этим затруднения, так что мешает на время сделать обычный GET запрос, обработать его и результат сразу в браузер? Ajax для выяснения этого и не нужен.
Ответить с цитированием
  #20 (permalink)  
Старый 01.02.2016, 22:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от sergei1094
JSON.parse: unexpected character at line 1 column 1 of the JSON data
Сервер отдает не json, а смесь ежика с колючей проволокой. Вам об этом не раз говорилось - ошибки на сервере, ищите.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
собрать из json Html Валерий1996 AJAX и COMET 1 15.06.2015 08:41
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10