tl8*_*tl8 3 ajax cors vimeo-api
我试图通过Ajax将视频上传到Vimeo,但我遇到了Firefox的CORS问题.
这是我正在使用的代码.它只是在发布文件的最后阶段做CORS保护阻止上传.
我检查了标题并正确设置了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
}
}
});
Run Code Online (Sandbox Code Playgroud)
有什么明显的我错过或可以尝试?
简答: Vimeo POST上传不是为客户端JavaScript设计的.该PUT上传系统有CORS 100%的支持.
答案很长:
Vimeo POST上传的开发旨在提供极其简单的上传体验.我们给你一个表格.您将表单放在页面的html中,用户使用表单,一切都已设置.这不支持进度条.这是不可恢复的.
上传视频时,我们必须在视频可用之前执行一些后期处理.当前的POST上传系统通过在上载完成后重定向客户端来自动处理此问题.不幸的是,CORS和重定向存在一些问题(我无法找到详细信息,但如果我记得正确的规则说明处理某些重定向作为错误情况).
现在你必须自己完成上传.我们正在努力改进这一点,但目前你必须在POST的响应的"location"标题中找到url.向此网址发出GET请求,您的上传即告完成.
Vimeo PUT上传被设计为功能齐全的高级上传系统.它们是可恢复的,流式设计可轻松支持进度条.您可以查询上载的状态,并按命令启动和停止所有内容.CORS 100%支持.这将需要使用HTML5文件对象,它对ie 9和更低版本的支持有限.
[编辑]现在有一个非官方的客户端视频上传脚本,用于流式工作流程.你可以在这里找到它:https://github.com/websemantics/vimeo-upload
| 归档时间: |
|
| 查看次数: |
4182 次 |
| 最近记录: |