Отправка данных через Ajax и их обработка на контроллере действий

#jquery #ajax #ruby-on-rails-3

#jquery #ajax #ruby-on-rails-3

Вопрос:

Я пытаюсь отправить некоторые данные о геолокации через Ajax и обработать их при определенном действии контроллера.

Код (который находится в представлении) выглядит следующим образом:

 $.ajax({
        type: "GET",
        url: "/save_location",
        data: "lat="   position.coords.latitude   "amp;long="    
            position.coords.longitude
});
  

У меня есть save_location действие, которое находится в users controller :

  def save_temp_location
    cookies[:lat] = params[:lat]
    cookies[:long] = params[:long]
 end
  

Я хочу временно сохранить эти данные, пока пользователь просматривает сайт. В моем представлении я попытался отобразить значения cookies[:lat] и cookies[:long] проверить, сработало это или нет: к сожалению, ничего не отображается. Я посмотрел на консоль, запрос GET выполнен (маршрут правильный):

 Started GET "/save_location?lat=48.856666amp;long=2.350987" for 127.0.0.1 at 2011-05-09 12:02:25  0100
  Processing by UsersController#save_temp_location as 
  Parameters: {"lat"=>"48.856666", "long"=>"2.350987"}
Redirected to http://fr.localhost.dev:3000/
Completed 302 Found in 1ms
  

Я попытался выполнить отладку, поместив в это действие: puts "foo" или raise "foo" , но ничего не происходит (однако я получаю соответствующее поведение при просмотре вручную в / save_location). 302 http code , Имеет ли это какое-то отношение к этому? (и что это означает в данном контексте?).

Как вы думаете, что не так? Я упускаю очень важный момент?

Спасибо!

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

1. Является ли код состояния 302 (и, следовательно, перенаправление) преднамеренным? Не могли бы вы отключить это и попробовать вызов ajax еще раз…

Ответ №1:

Разве фильтр не перенаправляет вас?