我似乎无法找到任何信息来帮助我这个或者我做错了很可能就是这种情况。我在这个URL上有一些示例JSON数据:
http://dev.plaidduckdesign.com/zen/album.php?aid=1037521524
注意:该页面加载大约需要20秒....
我通过json验证器运行它,它恢复干净。我正在尝试使用jonsp dataType从该页面请求数据只是一个ajax请求,因为它不在同一个域上。但我正在做的一切都没有用。我只是不断收到一个未知的错误。这是我的ajax请求:
$.ajax({
url: url,
dataType: "jsonp",
data: request,
success: function(data, textStatus, jqXHR) {
var obj = jQuery.parseJSON(rootData);
alert(obj[0].url);
},
error: function(jqXHR, textStatus, errorThrown) {
//alert("error ")
} // end error:
}); // end ajax
我还没有真正获得成功方法,只是错误。
非常感谢任何信息或指向正确的方向。
答案 0 :(得分:1)
为了使跨域调用工作,远程服务器必须支持JSONP,而不是JSON。似乎并非如此。目前响应如下:
[
{
url: "http://pizzutistudiosphotography.zenfolio.com/img/s8/v74/p1492770658-6.jpg?sn=3&tk=o4bxcOgmoSJ03SfRC3fclWNn73JkTdATCgOQI0JQxKA=",
width: 640,
height: 960,
title: "F2013_0120_Daoust_001",
copy: "© pizzuti studios photography | pizzutistudios.com",
caption: "Please respect our copyright. For more information please visit <a target="_blank" href="http://pizzutistudios.com">http://pizzutistudios.com</a>"
},
{...}
]
这是一个有效的JSON。但为了实现这一点,网站需要支持JSONP
格式,如下所示:
somecallback(
[
{
url: "http://pizzutistudiosphotography.zenfolio.com/img/s8/v74/p1492770658-6.jpg?sn=3&tk=o4bxcOgmoSJ03SfRC3fclWNn73JkTdATCgOQI0JQxKA=",
width: 640,
height: 960,
title: "F2013_0120_Daoust_001",
copy: "© pizzuti studios photography | pizzutistudios.com",
caption: "Please respect our copyright. For more information please visit <a target="_blank" href="http://pizzutistudios.com">http://pizzutistudios.com</a>"
},
{...}
]
)
应在请求中指定somecallback
。
您应该联系网站的作者,询问他们的网站是否支持JSONP。如果不是,你不能通过AJAX调用消耗它。作为替代方案,您可以在域上编写服务器端脚本,该脚本将充当桥接器并将请求发送到远程域。然后将您的AJAX请求发送到您自己的脚本。