用JavaScript从网站接收JSON

Receiving JSON from a website in JavaScript

本文关键字:JSON 网站 JavaScript      更新时间:2023-09-26

我有一个网站,它有JSON对象并试图将其作为对象。

就像大多数人遇到javascript问题时一样,我看了看jQuery,发现了一个叫做。getjson()的很棒的函数。(示例如下,可以用URL代替文件名)
$.getJSON('ajax/test.json', function(data) {
  var items = [];
  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });
  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});

这并不难理解…但问题是,下面的语句。

  • 由于浏览器安全限制,大多数"Ajax"请求都是主题同源政策;请求无法成功检索来自不同域、子域或协议的数据。

考虑到我的页面和源页面不是来自同一来源,上述方法不是我的可能选择。

还有其他方法可以解决这个问题吗?

提前感谢。

From the docs:

如果URL包含字符串"callback=?"(或类似的,由(服务器端API),请求被当作JSONP处理。

所以你需要稍微改变一下你的url读起来像http://path/to/resource?callback=?

这只在资源支持JSONP的情况下有效,这意味着服务器将把数据封装在一个与你的回调参数相对应的函数调用中,然后jQuery将在script标记中引用它。如果不能使用JSONP,唯一的选择就是某种服务器端代理。