让我们说有一个网址,例如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中提取数据。
答案 0 :(得分:2)
由于same origin policy,您无法对此其他域进行正常的ajax调用。
您可以使用JSONP加载远程页面,但是查看该示例输出您将无法访问数据,除非为JSONP设置远程站点(将JSON分配给变量,调用回调函数,等)。
您可以创建自己的服务器端passthrough脚本。你没有提到你可以使用的服务器端技术,但是如果你可以使用PHP,你可以像这样做一个直通技术:
<?php
echo file_get_contents("http://www.website.com/data.jsp");
?>
PHP(或任何其他服务器端语言)可以获取远程数据,现在您可以使用ajax来调用自己的脚本(由于您位于同一个域中,因此可以正常运行)。