Youtube api 文件获取内容(';YOUTUBE API';)返回缓存/未更新/旧信息
当直接从浏览器访问此url时,它将在100%的时间内返回正确的数据。如果一个视频被添加,它就在那里,如果一个视频被删除,它就消失了 通过文件获取此数据时,获取内容('https://gdata.youtube.com/feeds/api/users/EXAMPLE/uploads?v=2&alt=jsonc'); 数据似乎已缓存或未更新/当前数据 如果您继续刷新页面,它将显示/隐藏新视频,以及显示/隐藏删除的视频约5-10分钟,那么它将是准确的 当我使用$.getJSON()或$.ajax()获取数据时,也会发生同样的情况 数据不应该与在浏览器中访问url时相同吗 我只是想得到一个用户“示例”上传的最新视频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调用的结尾追加一个随机数<代码>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(){
}
});