Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем проблема - json_decode возвращает NULL, iframe приложение и ajax передача данных 
V
    Опции темы
Poveritov
Дата 2.3.2015, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.2.2015

Репутация: нет
Всего: нет



Вопрос не простой, по крайней мере в объяснении. Но попытаюсь достаточно подробно объяснить в чем проблема.

Разрабатываю i-frame приложение В контакте.
На клиентской части получаю список аудиозаписей пользователя и передаю json строку на сторону сервера методом ajax (jquery)

Код

VK.api('audio.get',{user_id:flashVars["viewer_id"]},function(data){
    $.ajax({
        dataType:"text",
        //contentType:"application/json;charset=UTF-8",
        url:'/iframe/json',
        data:({"param":JSON.stringify(data)}),
        type:'POST',
            success:function(msg){
                console.log(msg);
            }        
    });
});

переменная data возвращает все записи в правильно формате.
json строка формируется верно, проверял на jsonlint.com/

Проблема начинает возникать при получении данных POST на стороне сервера.

Провожу тестирование на собственной страничке.
Передаю информацию  о 3 аудиозаписях, в json-массиве 3 параметра соответственно.

Код на стороне сервера
Код

var_dump(json_decode($_POST['uA'],true));

возвращает массив.

Начинаю добавлять аудиозаписи и провожу повторные испытания.
Внимание! Вне зависимости от количества аудиозаписей, после добавление определенной аудиозаписи начинается сбой - json_decode возвращает NULL.
Я удаляю из списка эту аудиозаписей и снова  json_decode работает нормально. Тогда я добавляю другие аудиозаписи - и снова все в порядке. 

в json передается следующие значения 
Код
 (в качестве примера передаю инфу об  1 аудиозаписи)

response: {

items: [{
id: 319568004,
artist: 'Г.Лепс & Ани Лорак',
title: 'Зеркала',
duration: 223,
url: 'https://psv4.vk.m...gT6QxhD5lTttqj-J4',
lyrics_id: 202442158,
genre_id: 9
}]
}


Пытался обращать внимание на название исполнителя artist и заголовок title. НО не было закономерности, при которой json_decode начинало возвращать NULL. Не важно кириллица или латиница, длина строки и др.

Тем не менее, хотелось бы решить данную проблему, могли бы подсказать, в чем тут дело?

Добавлено через 10 минут и 39 секунд
причем, если передавать значения по очереди 

Код

VK.api('audio.get',{user_id:flashVars["viewer_id"]},function(data){
    $.ajax({
        dataType:"text",
        //contentType:"application/json;charset=UTF-8",
        url:'/iframe/json',
        data:({"param":JSON.stringify(data.response[1])}),
        type:'POST',
            success:function(msg){
                console.log(msg);
            }        
    });
});


даже если 1 - будет та аудиозапись, с которой json_decode  = NULL , то в этом случае json_decode вернет значение $_POST

Добавлено через 14 минут и 7 секунд
Хотя не во всех случаях, бывает, что json_decode все равно возвращает NULL
PM MAIL   Вверх
Poveritov
Дата 2.3.2015, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.2.2015

Репутация: нет
Всего: нет



Собственно, если передавать отдельно по полям, то проблема начинает возникать при передаче параметра url:

Может стоит закодировать каким-то образом строку, чтобы можно было передавать url? (я так понимаю в каких-то аудиозаписях url не совсем корректный для передачи POST)
PM MAIL   Вверх
Aliance
Дата 4.3.2015, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
Poveritov
Дата 4.3.2015, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.2.2015

Репутация: нет
Всего: нет



encodeURIComponent не помогал, так как проблема оказалась в глюках браузера Mozilla Firefox. Проверил в Opera - все работает, переустановил мозилу и также все стало работать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.