我有一个在 Heroku 中运行的 Rails 应用程序,以及一个使用 Jquery Mobile 的 html 文件。
Rails 应用程序返回 JSON 数据(使用 RABL),我的移动应用程序应该会提取并显示这些数据。
这就是我正在做的事情,我正在将响应的内容提供给列表视图。很简单。如果我使用 Chrome,控制台会显示错误Origin null is not allowed by Access-Control-Allow-Origin。如果我在 Firefox 上尝试,控制台上没有错误,但也没有显示数据,甚至没有触发警报。
function getBuses(){
$('#content').append("<ul id='bus_list' data-role='listview' data-inset='true'</ul>")
$('#content').trigger("create");
//Se llama a la API para retornar todos los buses
$.getJSON('http://someapp.herokuapp.com/buses.json', function(data)
{
$.each(data, function(key, value)
{
alert(key + ":" + value);
$('#bus_list').append('<li id="'+bus.id+'">'+bus.numero_de_linea+'<li/>');
});
});
$('#bus_list').listview("refresh");
}
这是服务器响应的内容:
[{"id":7,"numero_de_linea":"604"}]
我已经在 Access-Control-Allow-Origin 上阅读了一段时间,但我不确定我必须做什么,我应该更改服务器中的某些内容吗?我正在我的浏览器上尝试这个 html 文件,但它也不能在我的手机上运行。运行时我已将$.support.cors
and设置$.mobile.allowCrossDomainPages = true;
为 true mobileinit
。
任何有关下一步做什么的信息,将不胜感激。
编辑:如果您正在使用 RABL,请记住在初始化程序中将变量 enable_json_callback 设置为 true。你必须从双方启用这个东西。