Youtube api 文件获取内容(';YOUTUBE API';)返回缓存/未更新/旧信息

Youtube api 文件获取内容(';YOUTUBE API';)返回缓存/未更新/旧信息,youtube-api,Youtube Api,当直接从浏览器访问此url时,它将在100%的时间内返回正确的数据。如果一个视频被添加,它就在那里,如果一个视频被删除,它就消失了 通过文件获取此数据时,获取内容('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc'); 数据似乎已缓存或未更新/当前数据 如果您继续刷新页面,它将显示/隐藏新视频,以及显示/隐藏删除的视频约5-10分钟,那么它将是准确的 当我使用$.getJSON()或$.ajax()获

当直接从浏览器访问此url时,它将在100%的时间内返回正确的数据。如果一个视频被添加,它就在那里,如果一个视频被删除,它就消失了

通过文件获取此数据时,获取内容('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc');

数据似乎已缓存或未更新/当前数据

如果您继续刷新页面,它将显示/隐藏新视频,以及显示/隐藏删除的视频约5-10分钟,那么它将是准确的

当我使用$.getJSON()或$.ajax()获取数据时,也会发生同样的情况

数据不应该与在浏览器中访问url时相同吗

我只是想得到一个用户“示例”上传的最新视频


尝试在url调用的结尾追加一个随机数<代码>https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc&r=RAND其中
RAND
是每次调用url时随机生成的数字。不确定这是否对您有效,但可能值得一试。

我也有类似的问题。我试图通过$.ajax()调用检索特定视频的当前状态,并且响应数据似乎保持缓存状态。如果我从浏览器中尝试url,数据将更新

$.ajax({
    url: 'https://gdata.youtube.com/feeds/api/videos/YouTubeID?v=2&alt=json'
    type: "post",
    dataType: 'json',
    cache: false,
    success: function(response, textStatus, jqXHR){ 
        var ytState = response.entry.app$control.yt$state.name;
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log( "The following error occured: "+ textStatus + errorThrown );
    },
    complete: function(){   
    }
});
我尝试过json、jsonp、cached=false、附加时间戳、将开发人员密钥附加到url,但没有成功

**编辑

通过在ajax请求中使用POST vs GET,似乎消除了类似的缓存问题

编辑编辑


没关系,我很烂。使用POST会产生400错误。

Chase,我尝试在url调用的末尾添加一个rand(),但没有解决问题。谢谢你的回复,真奇怪。我使用PHP和file_get_contents()尝试了一些类似于您的方法的东西,我认为我可以工作,但是缓存问题仍然会间歇性地出现。
$.ajax({
    url: 'https://gdata.youtube.com/feeds/api/videos/YouTubeID?v=2&alt=json'
    type: "post",
    dataType: 'json',
    cache: false,
    success: function(response, textStatus, jqXHR){ 
        var ytState = response.entry.app$control.yt$state.name;
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log( "The following error occured: "+ textStatus + errorThrown );
    },
    complete: function(){   
    }
});