问题描述
我正在对 Vimeo API 的 jQuery ajax 调用进行故障排除,该调用在上个月左右开始失败,但在工作一段时间后开始失败。
// Url ends up like "https://www.vimeo.com/api/v2/video/123456789.json?callback=?"
var url = _thumbnailUrl + vimeoId + '.json?callback=?';
$.getJSON(
url,{ format: "json" },function (data)
{
// Do Stuff after getting data
}
);
我的猜测是“?callback=?”正在强制 JSONP 返回,但由于某种原因不再起作用并返回以下错误。我在 Vimeo 网站上看不到有关 API 任何更改的任何信息,但也许他们已经删除了 jsonp 支持。
text: "parseerror"
error: "jQuery35106413737095079624_1612470990268 was not called"
如果我删除“?callback=?”,它在 PostMan 中工作正常(因为您在那里没有看到 CORS 问题)但在浏览器中它会出错:
Access to XMLHttpRequest at 'https://www.vimeo.com/api/v2/video/123456789.json'
from origin 'https://www.myurl.com' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我尝试了很多方法,包括重新格式化为直接的 $.ajax 调用和切换 ajax 调用的各种属性,但没有找到解决方案。
还有其他人看到这个 Vimeo 问题吗?关于如何让它工作的任何建议?
解决方法
我刚遇到这个问题。摆脱了 jsonp 的东西,现在它可以正常工作了。
可直接在浏览器中访问视频 API 链接。 https://www.vimeo.com/api/v2/video/302379615.json 我没有遇到任何 CORS 问题。
$.ajax({
type: 'GET',url: '//vimeo.com/api/v2/video/' + video.id + '.json',dataType: 'json',success: function(data) {
console.log(data);
}
});