什麼是跨域
跨域是指瀏覽器的同源策略限制,這個策略會阻止一個域的javascript腳本和另外一個域的內容進行交互。如果一個請求url的協議、域名、端口三者之間任意一個與當前頁面的url不同即爲跨域。
如下圖所示即爲跨域時的報錯:
使用nginx搭建http-flv服務
主要使用了nginx和nginx-http-flv-module模塊,具體過程可參考:https://blog.csdn.net/rain_meter/article/details/88127209
配置好之後的主要配置如下圖所示:
此時我們可以正常的推流,並通過ffplay等播放器播放。
但是如果播放器flv.js所在的http服務不是我們所配置的nginx,那麼就會出現跨域的問題。
解決跨域
通過修改http-flv的nginx配置,即可解決跨域。
在nginx.conf的“location /live”中增加下面三行:
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET';
效果如下圖所示:
然後reload或者重啓nginx,就可以生效。