Показать сообщение отдельно
  #1 (permalink)  
Старый 04.09.2015, 12:08
Новичок на форуме
Отправить личное сообщение для surrealistic pillow Посмотреть профиль Найти все сообщения от surrealistic pillow
 
Регистрация: 25.04.2014
Сообщений: 4

Не получается передать на сервер JS массив с помощью ajax
У меня вопрос, на который я при всем старании, не нашел ответа.

На странице имеется множество ссылок с классом 'link'. Я получаю массив этих ссылок, и пытаюсь передать на сервер его, но не выходит. Огорчение

$(function(){
            var array = [];
     
            $('a.link').each(function(){
                    array[array.length] = $(this).attr('href');
            });  
           
            var data = "array = " + JSON.stringify( array );
            alert(data);//выводит на экран что-то вроде 'array = ["http://mysite.ru/1.html","http://mysite.ru/2.html",...]'        
           
            $.ajax({
                    url:     'url.php', //Адрес подгружаемой страницы
                    type:     "POST", //Тип запроса
                    data:  data,                      
                    success: function(response) { //Если все нормально
                            alert(response);
                    }                      
            });
    });




в принимающем скрипте вот что:

$array = json_decode( $_POST['array'], true );
    var_dump($array);//просто чтобы понять приходит что-то или нет


В результате выполнения скрипта вывода переданного массива на экран не происходит. То есть, запрос вообще не возвращает ничего. Где косяк?

Пробовал преобразовывать массив ссылок в обьект, потом обьект в JSON - тоже безрезультатно

function toObject(array) {
            var res = {};
            for (var i = 0; i < array.length; ++i)
                    if (array[i] !== undefined) res[i] = array[i];
            return res;
            }
    var obj = toObject(array);
    var data = $.toJSON(obj);
Ответить с цитированием