gpt4 book ai didi

ajax - Vimeo CORS 问题

转载 作者:行者123 更新时间:2023-12-01 18:39:17 25 4
gpt4 key购买 nike

我正在尝试通过 Ajax 将视频上传到 Vimeo,但在使用 Firefox 时遇到了 CORS 问题。

这是我正在使用的代码。只有在发布文件的最后阶段,CORS 保护才会阻止上传。

我已经检查了 header ,并且 Cross Origin 设置正确。

$.ajax({
url:'https://api.vimeo.com/me',
crossDomain:true,
headers:{Authorization: 'bearer ',Accept:'application/vnd.vimeo.*+json;version=3.2'},
error:function(){
videoError('Couldn\'t get a quota');
},
success:function(uploadQuota){
if(uploadQuota.upload_quota.space.free > 0 && (uploadQuota.upload_quota.quota.sd == true || uploadQuota.upload_quota.quota.hd == true)){

//Get Upload Ticket
$.ajax({
url:'https://api.vimeo.com/me/videos',
data:{type:'POST'},
type:'POST',
dataType:'json',
crossDomain:true,
headers:{Authorization: 'bearer ',Accept:'application/vnd.vimeo.*+json;version=3.2'},
error:function(){
videoError('Couldn\'t get a ticket');
},
success:function(uploadTicket){
if(uploadTicket.ticket_id != ''){
//Upload File
var videoData = new FormData();
$.each($('#video_upload')[0].files, function(i, file) {
videoData.append('file_data', file);
});

$.ajax({
url:uploadTicket.upload_link_secure,
type:'POST',
headers:{Authorization: 'bearer ',Accept:'application/vnd.vimeo.*+json;version=3.2'},
data: videoData,

cache: false,
contentType: 'multipart/form-data',
processData: false,
crossDomain:true,
//dataType:'jsonp',
error:function(){
videoError('Error uploading video. Please contact FDN with the ticket id:'+uploadTicket.ticket_id);
},
success:function(uploadData,status){
//Copy id to text box
}
});
} else {
//If none, process error
}
}
});
} else {
//If none, process error
}
}
});

有什么明显我错过了或者可以尝试的事情吗?

最佳答案

简短回答: Vimeo POST uploads不是为客户端 JavaScript 设计的。 PUT upload system 100% 支持 CORS。

长答案:

Vimeo POST 上传的开发旨在提供极其简单的上传体验。我们给您一份表格。您将表单放入页面的 html 中,用户使用该表单,并且一切都已设置。这不支持进度条。这是不可恢复的。

上传视频时,我们必须在视频可用之前执行一些后处理。当前的 POST 上传系统会在上传完成后重定向客户端来自动处理此问题。不幸的是,CORS 和重定向存在一些问题(我无法找到详细信息,但如果我没记错的话,规范规定将某些重定向作为错误情况处理)。

现在您必须自己完成上传。我们正在努力改进这一点,但目前您必须在 POST 响应的“location” header 中找到 URL。向此网址发出 GET 请求,您的上传就会完成。

Vimeo PUT 上传被设计为功能齐全的高级上传系统。它们是可恢复的,流式设计可以轻松支持进度条。您可以查询上传的状态,并根据命令启动和停止一切。 100% 支持 CORS。这将需要使用 HTML5 文件对象,该对象对 ie 9 及更低版本的支持有限。

[编辑] 现在有一个用于流式处理工作流程的非官方客户端视频上传脚本。您可以在这里找到它:https://github.com/websemantics/vimeo-upload

关于ajax - Vimeo CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26987727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com