在第三方服务器上使用 JSON

Working with a JSON on a third-part server

我正在用 cordova 开发一个 Android 应用程序,我需要从这个地址读取 json 文件:Dati.venezia.it 并将其放入 json 变量.我尝试过使用 jQuery getJson,但我在使用 CORS 时遇到了问题,我也尝试过使用 JSONP 进行同样的思考,但我还不知道它是如何工作的。 任何帮助,将不胜感激。

console.log("start");
var url = 'http://dati.venezia.it/sites/default/files/dataset/opendata/livello.json?callback=?';
this.risultato= $.getJSON(url, function(data){

}); 
console.log("end");

这是对 getJson 的尝试

$.getJSON('http://dati.venezia.it/sites/default/files/dataset/opendata/livello.json', function (data) {
  console.log(data);

  var items = data.items.map(function (item) {
    return item.key + ': ' + item.value;
  });

  showData.empty();

  if (items.length) {
    var content = '<li>' + items.join('</li><li>') + '</li>';
    var list = $('<ul />').html(content);
    showData.append(list);
  }
});

您说得对,您可以使用 jsonp 作为解决方法。查看 Dati.venezia.it ,目前似乎不支持 jsonp。您需要让端点 Dati.venezia.itjsonp 提供回调才能工作。

此外,端点缺少响应 header Access-Control-Allow-Origin,如果没有 header,其他站点将无法从中提取数据。这就是您 运行 陷入 CORS 问题的原因。如果您控制该网站,则需要将 Access-Control-Allow-Origin 添加到其响应 headers.