我正在用Ruby on Rails实现一个服务器。现在我想使用 ajax 请求(客户端在另一个域上,所以它是一个跨域调用)并从这个服务器中获取一些数据,并以 JSON 形式接收数据。
我该怎么做才能让它工作?
感谢
在客户端使用 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 请求。然后在服务器上,您可以读取参数,然后在函数中使用jQuery parseReturnedJsonData()
渲染json。检查 getJson 和 parseJson 函数来自 jQuery: http://api.jquery.com/jQuery.getJSON/
查看 rails 的jsonp
,但请确保您了解jsonp
的工作原理
http://kevinchiu.org/archives/jsonp-in-rails-3
将callback
作为查询参数传递:
$.getJSON('http://some-service.com/some-resource?callback=?',data, function(postsData) {
parseReturnedJsonData(postsData);
});
此外,请确保要查询的 API 支持 JSONP。查看 http://eduvoyage.com/jsonp-explained.html 以更好地了解 JSONP 的工作原理。