从URL获取JSON文件并显示

LIN*_*NGS 14 javascript url parsing json getjson

代码很简单,我不知道为什么它deosnt工作.

这是JSON文件的链接,http://webapp.armadealo.com/home.json

这是使用getJSON的代码

$.getJSON("http://webapp.armadealo.com/home.json", function(data){
alert(data);
});
Run Code Online (Sandbox Code Playgroud)

我只是希望代码显示整个JSON内容.

LIN*_*NGS 6

经过这么多个月的搜索,我找到了解决方案.因此,我正在回答我自己的问题.

当不支持JSON并且我们坚持使用同源策略时,我们必须使用填充包装我们的JSON并使其成为JSONP.

为此,我们有一个救生网站http://anyorigin.com/

您可以粘贴您的URL并获取相应的JQuery代码,

$.getJSON('http://anyorigin.com/get?url=http%3A//webapp.armadealo.com/home.json&callback=?', function(data){
$('#output').html(data.contents);
});
Run Code Online (Sandbox Code Playgroud)

如果您想使用自己的代码,那么只需使用上面代码中的URL即可

http://anyorigin.com/get?url=http%3A//webapp.armadealo.com/home.json&callback=?
Run Code Online (Sandbox Code Playgroud)

上面的URL将为您提供与JSONP相同的JSON数据,并解决所有问题.

我使用了以下代码,成功调用displayAll函数

$.ajax({
        url: 'http://anyorigin.com/get?url=http%3A//webapp.armadealo.com/home.json&callback=?',
        type: 'GET',
        dataType: "json",
        success: displayAll
    });

function displayAll(data){
    alert(data);
}
Run Code Online (Sandbox Code Playgroud)


Bri*_*kel 5

如果您查看Chrome检查器,则可能会看到以下错误:

XMLHttpRequest无法加载http://webapp.armadealo.com/home.json.Access-Control-Allow-Origin不允许来源http://stackoverflow.com.

这意味着服务器不希望客户端网页读取文件.客户端不受信任.这是XMLHttpRequest的基本安全功能,以防止像mybank.evil.com这样的网站从mybank.com下载数据.遗憾的是,从本地文件进行测试具有挑战性.

如果您信任任何包含您的数据或选定数量的站点的站点,则可以将服务器脚本配置为发送Access-Control-Allow-Origin以允许某些站点通过.

有关详细信息,请参阅https://developer.mozilla.org/en/http_access_control.