0

我已经在这里看到了一些类似问题的答案,并且都给了他们很好的阅读!我面临的问题是,我无法让 TfL 周期租用提要与 JSONP 一起使用,这只会返回 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>')
            });
        }
    });

});

我似乎在控制台中的 URL 上附加了一串额外的东西,这可能会导致错误:

GET http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml?callback=jQuery110209581123229581863_1381759036915&_=1381759036916 404 (Not Found) 

有人遇到过这个问题吗?

4

2 回答 2

0

据我所知,TFL 提要通常用于您自己的服务器,而不是客户端 Javascript。您必须注册特定的 IP 地址才能与它们一起使用这一事实有点暗示。循环提要看起来好像只是 XML,而不是 JSON 或 JSONP,大概是因为这个原因。

我认为,如果您想以 JSONP 形式提供周期可用性结果,您唯一的选择是设置一个查询 TFL、读取 XML 响应、将您需要的内容转换为 JSONP 并将其返回给您的客户端的服务器。

于 2013-10-14T14:26:47.583 回答
0

JSONP 代表 JavaScript Object Notation with Padding。这意味着包含在函数调用中的标准 JSON 字符串。该函数已执行,但如果您的页面上有一个具有该名称的 JavaScript 函数(或由 jQuery 动态添加)。如果您的 HTML 中没有具有相同名称的函数,则调用将失败,并且如果该 JSONP 块中的字符串不是 JSON,它将失败。在这种情况下,404 告诉您无论格式如何,服务都不愿意返回任何内容。

于 2013-10-14T14:13:28.130 回答