检测是否启用了cors?

vim*_*984 5 javascript cors

如何通过javascript检测是否在html5音频元素的远程文件上启用了cors?

我想仅在音频标签的远程src文件启用了cors的情况下输出附加到AudioContext的可视化工具。

glc*_*ham 5

只需在加载资源之前通过 javascript 请求文件,并检查access-control-allow-origin标头的响应标头。

如果资源具有标头,请使用资源的 URL 更新标签的 src 属性。

从请求中检查标头的 jQuery 示例:

var audioSource = 'mysite.com/audiosource.ogg';
$.get( audioSource, function( data, textStatus, request) {
    var header = request.getResponseHeader('access-control-allow-origin');

    if(typeof header !== 'undefined') {
         $('#audiotag').attr('src', audioSource);
    }
});
Run Code Online (Sandbox Code Playgroud)

值得注意的是,如果设置了 access-control-allow-origin 标头并且您没有从正确的域请求,您将被禁止加载资源