遇到过的错误:

DOMException: The play() request was interrupted by a new load request.
DOMException: Failed to load because no supported source was found.

到底这个标签的src可以跨域吗?

先看一个例子: (浏览器也有差异,IE浏览器都可以播放)

<audio id="musicplayer" preload="auto" >
<source src="m.mp3" type="audio/mpeg" id="musicsource">
</audio>
<script>
var audio =document.getElementById("musicplayer");
audio.crossOrigin = 'anonymous';
audio.src='https://fourthof5assets.s3-eu-west-1.amazonaws.com/heng-feeling-good.mp3';//可以播放
//audio.src='https://awp.qq.com/act/a20160315live/shake_sound_male.mp3';//不可以播放
audio.play();
</script>

再看他们的区别:

第二个的返回头:

总结:其实audio标签是可以跨域的,关键是被跨的那个服务器允不允许....

----------------

应该要在跨域服务器 apache或iis  虚拟目录配置文件,配置允许跨域请求.

apache为例:

Apache跨域设置:

例如a.com里面的页面需要跨域请求 b.com 里面的资源;
那么需要设置b.com返回的HTML请求里面配置Access-Control-Allow-Origin Header。不要搞混了去配置a.com的域名

可以配置具体请求的Header,或者在apache配置文件里面进行统一配置(所以使用set 而不是 add);即在<VirtualHost>节点或者<Directory>节点下添加如下代码:

Header set Access-Control-Allow-Origin "http://a.com"

Header set Access-Control-Allow-Origin "*"

经过测试发现,如果指定具体的域名,只能指定一个域名;Access-Control-Allow-Origin 不能同时指定多个域名地址;也不支持配置http://*.a.com这样的通配符;只能是具体的某个域名或者 "*";

转:https://www.jianshu.com/p/e18722bc67a7

关于audio标签播放跨域的问题的更多相关文章

  1. 使用audio标签播放音频文件

    HTML5定义了一个新的元素用来指定标准的方式来插入音频文件到web页面中:<audio>标签.使用audio标签可以控制音频的播放与停止,循环播放与播放次数设置,以及播放位置等等. 例如 ...

  2. jsonp跨域请求,动态script标签实现跨域

    1.什么是跨域 首先一个域名地址的组成是: http://www.xxx.com:8080/xxx/xxx.jsp 协议子域名主域名端口号请求资源地址 当协议.子域名.主域名.端口号中任意一个不相同时 ...

  3. 动态Script标签 解决跨域问题

     动态Script 解决跨域问题 1.动态创建scriptcreateScript : function(src){ var varScript = document.createElement(&q ...

  4. audio标签的自动播放(ios)

    0.应用场景 前端移动端开发,经常有播放音乐的需求.比如我有公司做过类似支付宝的年度账单,功能是用户在查看年度账单的过程中播放轻音乐. 1.audio标签播放mp3 (一)常用属性和API介绍 1.c ...

  5. 可以链接不同源的资源的html元素(能实现跨域)

    可以链接不同源的资源的html元素(能实现跨域): img.script.css.video.audio.object.embed.applet.@font-face.frame.iframe等. ( ...

  6. js中各种跨域问题实战小结(一)

    什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源策略 ...

  7. JS中的跨域问题

    一.什么是跨域? 1.定义:跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.但是一般情况下不能这么做,它是由浏览器的 ...

  8. 跨域的根本原因:JavaScript 的同源策略

    摘自:https://blog.csdn.net/liubo2012/article/details/43148705 同源策略限制了一个源(origin)中加载文本或脚本与来自其它源(origin) ...

  9. js中各种跨域问题实战小结

    什么是跨域?为什么要实现跨域呢?   这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源 ...

随机推荐

  1. 班尼特·A·麦克道尔 - 一个交易者的资金管理系统(2013年5月26日)

    <一个交易者的资金管理系统:如何确保利润并避免破产风险> 作 者:班尼特·A·麦克道尔 系 列:“引领时代”金融投资系列-世界交易经典译丛 出 版:万卷出版公司 字 数:155千字 阅读完 ...

  2. <摘录>MBR和分区表

    MBR 意思是主引导记录.位于硬盘的0柱面.0磁头.1扇区. MBR 大小为1个扇区,512字节. 下面是MBR的结构: 偏移                                    构 ...

  3. POJ 2187 Beauty Contest (求最远点对,凸包+旋转卡壳)

    Beauty Contest Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 24283   Accepted: 7420 D ...

  4. nand flash坏块管理OOB,BBT,ECC

    转:http://www.cnblogs.com/elect-fans/archive/2012/05/14/2500643.html 0.NAND的操作管理方式 NAND FLASH的管理方式:以三 ...

  5. Android学习进阶路线导航线路(Android源码分享)

                                                                                                       转 ...

  6. JSON相关

  7. 使用免安装版本在windows上手动安装PostgreSQL

    PostgreSQL支持管理员直接手动安装数据库,给用户提供了更大的方便.     1. 在PostgreSQL官方网站上下载免安装二进制的包,名字类似于postgresql-*.*.*.*-bina ...

  8. shadow mapping实现动态shadow实现记录 【转】

    http://blog.csdn.net/iaccepted/article/details/45826539 前段时间一直在弄一个室内场景,首先完成了render,效果还可以.然后给其加上shado ...

  9. Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决!

    Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决! 一般牛人的解释如下: 问题终于搞定.是因为需要手工建%PROGRAMFILES%\Lenovo\Hotkey目录.这个写 ...

  10. 【转载】Android控件属性大全

    控件属性: android属性 Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料, 第一类:属性值为true或falseandroid:layout_ ...