我已经在这里看到了类似问题的一些答案,并给了他们一个很好的阅读!我面临的问题是,我无法获得使用JSONP的TfL循环租用Feed,而这只返回404,而如果您将链接放在浏览器中,它就在那里:
$(document).ready(function(){
// CYCLE HIRE DATA
var cycleHireUrl = 'http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml';
$.ajax({
type: "GET",
dataType: "jsonp",
url: cycleHireUrl,
success: function(data) {
$.each(data["station"], function(index, item) {
var name = item.name;
$('.cycles').append('<div>' + name + '</div>')
});
}
});
});
我似乎在控制台中的网址上附加了一串额外的内容,这可能会导致错误:
GET http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml?callback=jQuery110209581123229581863_1381759036915&_=1381759036916 404 (Not Found)
有人有这个问题吗?
答案 0 :(得分:0)
JSONP代表带有填充的JavaScript Object Notation。这意味着包含在函数调用中的标准JSON字符串。该函数被执行但是如果页面上有一个带有该名称的JavaScript函数(或者由jQuery动态添加)。如果您的HTML中没有具有相同名称的函数,则调用将失败,如果该JSONP块中的字符串不是JSON,则它将失败。在这种情况下,404告诉您服务不愿意返回任何格式的内容。
答案 1 :(得分:0)
从我所看到的,TFL提要通常意味着从您自己的服务器使用,而不是从客户端Javascript使用。您必须注册特定IP地址才能使用这一事实,这有点暗示。循环馈送当然看起来好像只是XML,而不是JSON或JSONP,可能就是出于这个原因。
我认为,如果你想提供循环可用性结果,那么你唯一的选择是JSONP是设置一个查询TFL的服务器,读取XML响应,将你需要的东西转换为JSONP并将其返回给你的客户端。