如何从远程网站获取数据?

时间:2013-04-10 01:24:49

标签: javascript jquery api

让我们说有一个网址,例如www.website.com/data.jsp

该链接具有以下JSON数据

{"successful":"true","rows":[{"zip":"65472","user_id":"10843","name":"Rufio"}]}

我只是希望能够在运行时提取这些数据但是我很难用getJSON获取它

$.getJSON("test2.jsp",function(result){
                $("div").append(result.rows[0].user_id + " ");
            });

现在如果我使用本地文件运行它,数据驻留在test2.jsp中,如上所示,它会附加user_id。但是,当我尝试访问“www.website.com/data.jsp”时,没有任何反应。我不认为该网站配置为与JSONP一起使用。

我需要一种方法来弄清楚如何在运行时从网站上提取这些数据。有没有人有任何解决方案或解决方法?

P.S。这可能需要在另一端进行整理吗?拥有该网站的人将此方案设置为假的api调用,通常您会传递参数以获取您需要的特定信息。在此端点或URL的情况下,它只返回单个记录,或者文件只包含上面列出的数据。他们希望我在运行时从他们的URL中提取数据。

1 个答案:

答案 0 :(得分:2)

由于same origin policy,您无法对此其他域进行正常的ajax调用。

您可以使用JSONP加载远程页面,但是查看该示例输出您将无法访问数据,除非为JSONP设置远程站点(将JSON分配给变量,调用回调函数,等)。

您可以创建自己的服务器端passthrough脚本。你没有提到你可以使用的服务器端技术,但是如果你可以使用PHP,你可以像这样做一个直通技术:

<?php
echo file_get_contents("http://www.website.com/data.jsp");
?>

PHP(或任何其他服务器端语言)可以获取远程数据,现在您可以使用ajax来调用自己的脚本(由于您位于同一个域中,因此可以正常运行)。