设置跨域规则后调用OSS时仍然报“No 'Access-Control-Allow-Origin'”的错误
跨域是什么,及新版本浏览器安全机制,一篇相对权威详细的介绍文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
别走开,这篇文章能解决你不少问题
记录一次使用阿里云oss跨域问题,
问题:直播流地址播放,个别电脑的个别浏览器(这里是chrome,版本81.0.4044.138, 64)请求不到视频流,控制台报错是跨域(No 'Access-Control-Allow-Origin'”),当时情况(大部分电脑没问题,阿里云控制台已经设置了跨域)。
阿里云给的解决:https://help.aliyun.com/knowledge_detail/39518.html?spm=a2c4g.11186623.2.25.5c77c451UV4ZPS
阿里云的解决方式就是在后台设置允许跨域,(*),全部允许跨域。
解决方案:正在解决,稍后同步。
时间2020-0508-11:41。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
现在是202005091345 问题已经定位到,是chrome新版本的安全策略,如果你想用,执行以下步骤,但是,你不能指望所有用户都执行以下步骤。
Chrome浏览器开启Ajax跨域访问调试
在当今前后端分里模式开发越来越多,使用Ajax进行数据交互时常有跨越发生。
本文说明如何让Chrome浏览器支持开发时的Ajax跨域访问。
1.升级Chrome到最新版本
参考下面经验"如何离线安装Chrome最新版本或某一特定版本?",将Chrome升级到最新版本。
2.方法一,创建一个调试用的Chrome快捷方式(这种方式治标不治本,用户不会统一改的,除非你放弃他们,看后续...)
右键选择Chrome快捷方式,在弹出的右键菜单中选择"创建快捷方式",重命名新建的快捷方式为Chrome-Debug。
3.打开Chrome-Debug快捷方式属性
右键选择Chrome-Debug快捷方式,右键菜单中选择"属性",打开Chrome-Debug快捷方式属性设置对话框。
4.增加启动参数
在目标后面增加如下的启动参数:--user-data-dir="c:\ChromeDebug" --test-type --disable-web-security ,点"确定"按钮保存设置。完整的目标内容如下所示:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:\ChromeDebug" --test-type --disable-web-security
注:
- 每个--前面都有一个空格。
- disable-web-security需要搭配user-data-dir参数一起设置。
5.打开Chrome-Debug
因为启动参数中增加了--user-data-dir="c:\ChromeDebug",表示Chrome会从c:\ChromeDebug中存取用户数据,因该目录可能为空,所以新打开的Chrome-Debug窗口是一个全新的Chrome,没有书签、历史、扩展程序等内容,需要再重新安装扩展程序。
6.调试跨域访问
再次打开之前出错的程序,就可以发现Ajax已经可以正常跨域访问了。
参考自百度经验
------------------------------------------------------------------------------------------------------------------------------------------------
待续...
------------------------------------------------------------------------------------------------------------------------------------------------
现在是202005101723
这个问题的原因是,使用了非阿里云播放器。
据前端解释,阿里云播放器播放阿里云播放流,前端js有后门。使用其他播放器会有跨域问题。