2016-03-06 79 views
2

我該如何去檢測cors是否通過javascript在html5音頻元素的遠程文件上啓用?檢測cors是否啓用?

如果音頻標籤的遠程src文件啓用了cors,我想只輸出附加到AudioContext的可視化工具。

+0

我沒有看到任何理由來專門檢測CORS。只要嘗試訪問資源,如果失敗,不要顯示您的可視化工具。 – Bergi

+0

是的,你沒有看到它並不意味着我不需要它... – vimes1984

+0

但你需要什麼?禁用CORS與世俗網絡錯誤有什麼不同? – Bergi

回答

3

只需在加載資源前通過javascript請求文件,並檢查訪問控制允許來源標題的響應標頭。

如果資源具有標題,請使用資源的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); 
    } 
}); 

值得一提的是,如果訪問控制,允許原產頭設置,你就不會從你會正確的域名請求無論如何都被禁止加載資源

+0

是啊從技術上說,這不是真的,你可以通過JS加載音頻文件到音頻元素,你不能在conteext。 – vimes1984

+0

你是什麼意思,你不能在AudioContext? – glcheetham

+0

getResponseHeader不會返回'Access-Control-Allow-Origin'的值,除非服務器也以'Access-Control-Expose-Headers'標題作爲響應,並將其列爲暴露的標題之一 –

相關問題