У меня возникли проблемы с ajax/jquery в codeigniter.json parsing proble в codeigniter
На странице Html у меня есть кнопка, когда она нажата вызывается следующий обработчик.
Обработчик нажатия кнопки:
function postMessage(e) {
var postUrl = 'http://localhost/myProject/index.php/main/post_message';
$.ajax({
type: "POST",
url: postUrl,
success: successfulPost,
dataType: "text"
});
}
Ajax обратного вызова:
function successfulPost(data) {
data = JSON.parse(data);
document.write(data[0].hello);
}
сервисной функции внутри Главный контроллер:
function post_message() {
echo "[{\"hello\":\"world\"}]";
return;
}
Проблема в том, тха JSON.parse() похоже, не выполняет свою работу.
Эти функции довольно просты, поэтому я начинаю думать, может быть, проблема с codeigniter?
EDIT:
что любопытно, что если я ставлю точно такую же строку JSON в JSON.parse() он получает разобран, то proble когда функция обслуживания передает.
EDIT:
подсчета числа символов в строке JSon она должна быть 13 , но я получаю 17 ...
Edit:
Я теперь признают, что несмотря на то, вторя выполняется правильно есть странные символы, ведущие тело ответа HTTP ... что-то вроде новых строк \ 0 или вкладок кто-нибудь подскажет почему?
Тип данных в вызове Ajax является текст, и это может быть возвращение вам текст, изменить и посмотреть, если это решит вашу problem.Json синтаксический анализ не будет работать правильно, если вы не получите данные json, и, поскольку вы написали текст в виде данных, он отправит вам текстовый вывод. – WordsWorth
Какой у вас браузер?, Вы проверили консольный журнал (f12)?, JSON.parse поддерживается только в современных браузерах, используйте $ .parseJSON() вместо – amd
нет, изначально это был «json», а successPost не получал даже вызванный, потому что ошибка синтаксического анализа была сгенерирована раньше, я помещаю «текст» таким образом, что успешно вызывается функция receivelPost, и я могу сделать некоторую отладку с использованием предупреждения. – GionJh