访问从rails控制器中的ajax发布的json数据

时间:2011-07-20 13:27:11

标签: javascript jquery ruby-on-rails json

我已经对json数据发出了ajax post请求,我想在rails控制器中访问该数据,以便如何访问数据。

以下是我使用ajax

发布数据的方式
jQuery.ajax({
          url: 'main/getlocation',
          data: "{latitude:" + latitude + ",longitude:" + longitude + "}",
          dataType: 'json',
          type: "POST",
          success: function(data) {
            alert("Successful");
          },
          failure: function() {
            alert("Unsuccessful");
          }
        }); 

如何从rails控制器访问纬度和经度数据。我无法使用普通参数[:latitude]和params [:longitude]访问数据。我该怎么用?

2 个答案:

答案 0 :(得分:8)

我猜你已经将经度和纬度分配为可由ajax请求访问的变量。如果不是你不会在控制器中得到任何东西。确保变量范围正确,然后尝试:

jQuery.ajax({
          url: 'main/getlocation',
          data: "latitude=" + latitude + "&longitude=" + longitude,
          type: "POST",
          success: function(data) {
            alert("Successful");
          },
          failure: function() {
            alert("Unsuccessful");
          }
        }); 

现在,我猜你可以在控制器中获得params [:longitude]和params [:latitude]。

答案 1 :(得分:1)

您不需要在jquery ajax post请求中定义类型json。 在你的javascript中使用以下代码

jQuery.ajax({
          url: 'main/getlocation',
          data: {latitude:latitude,longitude:longitude},
          type: "POST",
          success: function(data) {
            alert("Successful");
          },
          failure: function() {
            alert("Unsuccessful");
          }
        }); 

现在尝试

params[:latitude] and params[:longitude] in your controller.