我正在尝试从外部网站上的JSON获取数据,但该网站不支持JSON-P输出。这是一个非工作代码的例子,但很好地了解了我想要实现的目标:
$.getJSON("http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json", function(data){
//Process data here
});
除了本地托管数据或使用AJAX / PHP调用下载和处理数据之外,还有其他方法吗?我宁愿不让服务器提供服务或下载数据,而是让用户的浏览器直接获取它。
提前致谢!
答案 0 :(得分:5)
最简单的选择是通过PHP代理脚本运行json调用, 喜欢这个:
<?php
// PHP Proxy
// Loads a file from any location.
// Author:Paulo Fierro
// January 29, 2006
// usage: proxy.php?url=http://mysite.com/myxml.xml
$session = curl_init($_GET['url']);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($session);
echo $xml;
curl_close($session);
&GT;
并使用它作为你的来源ajaxCall
$.getJSON("proxy.php?url=http%3A%2F%2Fwww.bom.gov.au%2Ffwo%2FIDV60901%2FIDV60901.94868.json", function(data){
答案 1 :(得分:1)
如果没有自愿的外部服务器或服务器端代理,大多数浏览器的Same Origin Policy都不允许您这样做。你可以尝试使用flash进行一些黑客攻击:
这假设您的用户已安装了Flash,但一般来说,如果他们安装了javascript,他们也会有flash ...
OR
如果您要查找的数据在某个地方作为Feed发送,您可以将其传递给Yahoo Pipes,他们将为您返回jsonp。
祝你好运!