3

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

我该怎么做才能让它工作?

谢谢

4

3 回答 3

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/

于 2012-05-16T18:08:42.600 回答
0

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

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

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

于 2012-05-16T18:14:45.150 回答
0

查看jsonp导轨,但请确保您了解其jsonp工作原理

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

于 2012-05-16T17:59:18.533 回答