2016-02-12 6 views
0

Я получаю сообщение об ошибке в заголовке, установленном в API iFrame YouTube. Я не думаю, что это происходило раньше.API YouTube iFrame не загружает видео на iPhone

Refused to set unsafe header "Origin" 
Wdwww-embed-player.js:225:275 
$dwww-embed-player.js:228:375 
(anonymous function)www-embed-player.js:1267 
Jmwww-embed-player.js:870:162 
Gqwww-embed-player.js:1266:557 
wrwww-embed-player.js:1302:197 
(anonymous function)F1CbO4TLzgI:9:14691 

Это, похоже, происходит только на iPhone (как в Chrome, так и в Safari). Я на последней прошивкой (9.2.1)

Это код, где происходит последняя ошибка:

//ln 1503 
function Wd(a, b, c, d, e, f, h) { 
    function k() { 
     4 == (l && "readyState"in l ? l.readyState : 0) && b && nc(b)(l) 
    } 
    var l = Ud && Ud(); 
    if (!("open"in l)) 
     return null; 
    "onloadend"in l ? l.addEventListener("loadend", k, !1) : l.onreadystatechange = k; 
    c = (c || "GET").toUpperCase(); 
    d = d || ""; 
    l.open(c, a, !0); 
    f && (l.responseType = f); 
    h && (l.withCredentials=!0); 
    f = "POST" == c; 
    if (e = Xd(a, e)) 
     for (var n in e) 
      l.setRequestHeader(n, e[n]), "content-type" == n.toLowerCase() && (f=!1); 
    f && l.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    l.send(d); 
    return l 
} 

Вот мой код для загрузки видео:

var yt = document.createElement('div'), 
    _this = this, 
    id = this.videoID; 

$(yt).attr('id', id); 
this.container.append(yt); 

this.el = new YT.Player(id, { 
    height: '100%', 
    width: '100%', 
    playerVars: { 
     'autoplay': 1, 
     'controls': 0, 
     'search': 0, 
     'showinfo': 0, 
     'autohide': 1, 
     'rel': 0, 
     'html5': 1 
    }, 
    videoId: this.videoID, 
    events: { 
     'onReady': function(e) { _this.loadComplete(e); }, 
     'onStateChange': function(e) { _this.stateChanged(e); }, 
     'onError': function(e) { _this.error(e); } 
    } 
}); 

this.timeout = setTimeout(function() { 
    _this.core.debug.log('YOUTUBE', 'CHECKTIMEOUT', _this); 
    if (!_this.isLoaded) { 
     _this.error(); 
    } 
}, TIMEOUT); 

Любой помощь или предложения были бы весьма признательны.

+0

Также просто примечание ... эта ошибка не возникает на настольных браузерах. – sethasaurus

+0

Можете ли вы предоставить полный пример jsfiddle, чтобы я мог протестировать iPhone? – JAL

+0

Не похоже, что jsfiddle работает даже для базового встраивания на моем iphone ... https://jsfiddle.net/n7gvsqb9/1/ – sethasaurus

ответ

0

Я думаю, что это проблема с моим собственным кодом. Ошибка возникает, но я думаю, что видео по-прежнему будет загружено OK.

Вы можете увидеть, что ошибка появляется даже на демонстрационной странице YouTube iFrame API, но видео работает.

Смежные вопросы