2016-02-12 77 views
0

我收到有关YouTube iFrame API中设置的标头的错误。我不相信这是以前发生的。YouTube iFrame API无法在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)。我在最新的iOS(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演示页面上看到错误,但该视频正常工作。