【问题标题】:Ruby on Rails Webservice - access via ajax requestRuby on Rails Webservice - 通过 ajax 请求访问
【发布时间】:2012-05-24 07:48:21
【问题描述】:

我正在用 ruby​​ on rails 实现一个服务器。现在我想使用 ajax 请求从这个服务器中获取一些数据(客户端在另一个域上,所以它是一个跨域调用)并以 JSON 形式接收数据。

我必须做些什么才能让它工作?

谢谢

【问题讨论】:

    标签: ruby-on-rails ajax json cross-domain


    【解决方案1】:

    在客户端使用 jquery 发送 ajax 请求:

    像这样形成你的参数:

    var data = {
                        remote: true,
                        myplace:
                        {
                            swlat:lat(),
                            swlng:lng(),
                            nelat:lat(),
                            nelng:lng(),
    
                        }
                    };
        $.getJSON('/location/getNewLocation',data, function(postsData) {
           parseReturnedJsonData(postsData);
    
       });
    

    这将向 json 数据的 URL 发送 POST 请求。然后在服务器上,您可以读取参数,然后在 parseReturnedJsonData() 函数中使用 jQuery 渲染 json。检查 jQuery 中的 getJson 和 parseJson 函数:http://api.jquery.com/jQuery.getJSON/

    【讨论】:

      【解决方案2】:

      查看jsonp 以了解rails,但请确保您了解jsonp 的工作原理

      http://kevinchiu.org/archives/jsonp-in-rails-3

      【讨论】:

        【解决方案3】:

        您需要将callback 作为查询参数传递:

          $.getJSON('http://some-service.com/some-resource?callback=?',data, function(postsData) {
            parseReturnedJsonData(postsData);
          });
        

        另外,请确保您查询的 API 支持 JSONP。查看http://eduvoyage.com/jsonp-explained.html 以更好地了解 JSONP 的工作原理。

        【讨论】:

          猜你喜欢
          • 2012-07-19
          • 2023-04-08
          • 1970-01-01
          • 1970-01-01
          • 2012-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-06
          相关资源
          最近更新 更多