OSS阿里云上传文件 前端js下载url跨域问题

场景:

1.后端上传文件至阿里云OSS,返回得到一个URL。

2.前端用这个URL下载文件,ajax请求异常:No 'Access-Control-Allow-Origin' header is present on the requested resource.

3.使用html <a> 标签直接可以下载

分析原因:

1.js和ajax什么的是看不见的易出错的,需要安全保护,用<a>标签是申请主动请求另外一个域名,浏览器就没有那个策略。

2.另外其实阿里云OSS也是可以配置的,有个管理页面专门可以配置跨域规则。

 

解决方案:

1.前端直接使用<a>标签,简单有效

2.去阿里云OSS后台管理界面设置跨域规则。(估计最终就是OSS后端接口会加上response.setHeader("Access-Control-Allow-Origin", "配置的域名");

3.当然还一些比较丑陋的方案:JSONP之类的等等,上网一搜一大堆。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于ElementUI和阿里云OSS的分片上传视频跨域问题,您可以通过配置CORS规则来解决。 首先,在阿里云OSS的控制台中,找到您的存储空间,并进入"域名管理"页面。然后,点击您要使用的域名,进入该域名的详细设置页面。 在页面下方的"CORS配置"部分,点击"添加规则"按钮,然后按照以下步骤进行配置: 1. 在"允许的来源"中填写您的网站域名,例如:"http://example.com"。 2. 在"允许的方法"中选择"GET"、"PUT"、"POST"、"DELETE"、"HEAD",这些方法是常用的上传操作所需要的。 3. 在"允许的头部信息"中填写"Content-Type",这是常用的上传请求头部信息。 4. 在"暴露的头部信息"中填写"ETag"和"Content-Length",这些是常用的响应头部信息。 完成上述配置后,保存并退出设置页面。 接下来,在您使用ElementUI进行文件上传的代码中,需要在请求头中添加一些特定的头部信息,以允许跨域请求。具体代码如下: ```javascript this.$refs.upload.uploadFiles.forEach(file => { file.headers = { 'Access-Control-Allow-Origin': 'http://example.com', 'Access-Control-Allow-Methods': 'GET, PUT, POST, DELETE, HEAD', 'Access-Control-Allow-Headers': 'Content-Type' }; }); ``` 请将上述代码中的"http://example.com"替换为您的网站域名。 通过以上配置和代码修改,您应该能够解决ElementUI和阿里云OSS分片上传视频的跨域问题。希望对您有帮助!如有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值