Как мне прочитать JSON, отправленный ajax в rails?

#jquery #ruby-on-rails #json #ajax

#jquery #ruby-on-rails #json #ajax

Вопрос:

Я отправляю массив JS в свое приложение rails :

 $.ajax({
        url: "/backend/familles/change_order.js",
        contentType: 'json',
        type: "POST",
        data: JSON.stringify(sort_array)
      });
  

Вот как firefox видит сообщение ajax :

http://i.imgur.com/wdy2MJa.png

Но params.inspect содержит только следующее :

 {"controller"=>"backend/familles", "action"=>"change_order", "locale"=>"fr"}
  

Что я должен изменить, чтобы иметь возможность читать данные JSON?

Ответ №1:

Нет необходимости явно указывать ваш объект данных, jQuery сделает это за вас! Также вы должны добавить ключевое значение для данных, которые вы хотите отправить. Что-то вроде этого должно работать:

 data: {"sort_array": sort_array}
  

Ответ №2:

вы должны использовать

 dataType: 'json'
  

не contentType

Редактировать:

Я думаю, вам не следует отправлять массив напрямую. Попробуйте:

 data: JSON.stringify({"items":sort_array})
  

или

 data: {"items": JSON.stringify(sort_array)}
  

Комментарии:

1. Я сделал это, но это все равно не работает. Я также добавил ContentType: ‘application / json’

2. Смотрите мою правку. Я думаю, что у этого массива должно быть «имя»

3. Теперь я могу проанализировать строку, которая дает мне данные JSON. Однако я должен удалить тип данных, потому что, если он определен, представление js, возвращаемое сервером, не интерпретируется. (некоторый JS-код).