Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2017, 20:51
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Ajax jQuery и parseerror
Здравствуйте! Давно уже сталкиваюсь с ошибкой parseerror при отправке json через ajax

var send_data = {get_data: 1};
        
        $.ajax({
            type: 'POST',
            url: '/wash/get_data_service_old',
            dataType:'json',
            data: send_data,
            complete: function(val1, val2) {
                alert(val2);
            },
            success: function(data) {
                console.log(data);
            }
        });

Алерт возвращает нам parseerror, в чем проблема никак не могу понять...
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2017, 20:59
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Возможно проблема в том, что сервер возвращает невалидный json.
Т.к. dataType указан как json, то jq пытается сразу пропарсить ответ и вернуть объект, не строку, а т.к. ответ сервера невалидный, то jq и выкидывает сообщение об ошибке.

Можно dataType закомментировать и самостоятельно попытаться распарсить ответ сервера, чтобы убедиться в написанном мною, либо опровергнуть это.
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2017, 14:41
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Сообщение от Nexus Посмотреть сообщение
Возможно проблема в том, что сервер возвращает невалидный json.
Т.к. dataType указан как json, то jq пытается сразу пропарсить ответ и вернуть объект, не строку, а т.к. ответ сервера невалидный, то jq и выкидывает сообщение об ошибке.

Можно dataType закомментировать и самостоятельно попытаться распарсить ответ сервера, чтобы убедиться в написанном мною, либо опровергнуть это.
Нет, если убрать тип данных json то все работает, но это не потому, что сервер возвращает некорректный тип данных, а потому, что скорее всего что то с теми данными которые я пытаюсь отправить. Даже если специально подготовить валидный ответ от сервера в качественном json формате то ошибка будет сохраняться.

Есть некоторые посты которые утверждают, что такая проблема вызывается только в браузерах chromium и вызвана символами табуляции в json запросе на сервер.
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2017, 14:47
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

BIGserg,
encodeURIComponent
не пробовали использовать?
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2017, 14:52
Интересующийся
Отправить личное сообщение для BIGserg Посмотреть профиль Найти все сообщения от BIGserg
 
Регистрация: 09.03.2014
Сообщений: 13

Сообщение от Nexus Посмотреть сообщение
BIGserg,
encodeURIComponent
не пробовали использовать?
Да, данный метод действительно работает
Осталось только подумать имеет ли смысл его использовать постоянно для исправление этой ошибки или это колхоз))
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2017, 15:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от BIGserg Посмотреть сообщение
Да, данный метод действительно работает
Осталось только подумать имеет ли смысл его использовать постоянно для исправление этой ошибки или это колхоз))
Точно не знаю, но если передавать jQ данные в виде объекта, то данный метод будет применен "автоматически".
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jquery, AJAX и все IE prowoke AJAX и COMET 7 01.12.2012 22:34
jQuery Click() не работает на объекте, созданном Ajax vovabigov jQuery 13 09.09.2012 14:25
Slider AJAX JQuery igsavenko jQuery 2 08.05.2011 19:19
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49
JQuery + Ajax = загрузка изображений jokerbot jQuery 0 06.12.2009 15:10