2012-05-18 122 views
1

我认为这个问题很简单,但我似乎无法找到答案。 一个网站(不同来源,无法控制它)正在提供一些JSON文件。我想要我的脚本的一些变量来获取这些文件的内容。我不在乎它是否同步完成。你会怎么走?将外部JSON文件加载为一个javascript变量

+1

你可以使用jsonp吗? http://en.wikipedia.org/wiki/JSONP或jQuery的方式http://api.jquery.com/jQuery.ajax/ – benqus

+0

有没有干净的方式? – Cystack

+0

据我所知,没有浏览器。从corse的JavaScript。 – benqus

回答

1

使用JSONP由使用您的网址,使用的参数,以及脚本文件添加到您的网页

www.example.com/process?value=1 &回调= Func键

将脚本添加到您的页面。

var url = "www.example.com/process?value=1&callback=Func"; 
var script = document.createElement('script'); 
script.type= ' text/javascript'; 
script.src = url; 
document.getElementsByTagName("body")[0].appendChild(script); 

现在您可以使用回调函数或访问从此脚本添加的变量。

UPDATE

在你JSONP脚本结束时,你可以打电话给你的回调函数 例如:PHP

<?php 
if (isset($_GET['callback'])) { 
    echo $_GET['callback']."();"; 
    // Func(); // will call your function and use your variables. 
} 
+0

谢谢... JSONP就是那么...现在,如果我将它托管在我的服务器上,那么代码段会是什么? – Cystack

+0

看到我的更新,你可以在最后调用这个函数 – Ibu

+0

这意味着我可以控制“example.com”服务器......但我不知道! – Cystack

1

如果远程主机不提供JSONPCORS,那么你会需要在您自己的域中放置一个服务器端组件,为您提供JSON并在本地提供服务。