0

假设有一个网址,例如 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。

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

ps 这是否可能需要在另一端进行整理?拥有该网站的人将此场景设置为就像一个虚假的 api 调用一样,通常您会传入参数以获取您需要的特定信息。在此端点或 url 的情况下,它只返回一条记录,或者文件只包含上面列出的数据。他们希望我在运行时从他们的 url 中提取数据。

4

1 回答 1

2

由于同源策略,您无法对其他域进行正常的 ajax 调用。

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

您可以创建自己的服务器端直通脚本。你没有提到你有什么服务器端技术可用,但如果你可以使用 PHP,你可以像这样进行传递:

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

PHP(或任何其他服务器端语言)可以获取远程数据,现在您可以使用 ajax 调用您自己的脚本(因为您在同一个域上,所以可以使用)。

于 2013-04-10T01:56:27.140 回答