17

http://beta.billboard.fmにある私のアプリで、1 曲再生した後、通常のブラウジング セッションでエラーが発生します。

シークレット モードでページをリロードすると、アプリは完全に機能します。私は最近、これらの問題を経験し始めたばかりです。すべてのキャッシュのクリアが完了し、再び機能しますが、同じエラーをスローする前の一時的なものです。

さらに、すべてのブラウザ拡張機能を無効にしました。

しかし、私が何をしても、Youtube API によってスローされたためにこのエラーが発生することはありません。

http://www.youtube.comにメッセージを投稿できません。受信者にはオリジンhttps://www.youtube.comがあります

セキュリティ プロトコルに不一致があるようです。それらをhttpsに変更するか、「http:」をすべて削除してみました。しかし、それは問題を解決しませんでした。

ここで何が起こっているのか、誰にも分かりますか?

4

3 に答える 3

4

この時点で、これが Google/YouTube の API の重大なバグであることは明らかです。彼らはどこかに悪いコードを書いています。このバグは一貫したものではありません。これは、すべてのコードが長期間正常に動作していたにもかかわらず、サイトが突然正常に動作しなくなったことに気付いたという事実によって十分に立証されています。さらに、先週この問題が発生したすべての Web サイトは、コードを変更することなく、問題なく動作するようになりました。

ですから、これを言うのは残念ですが、これを修正し、宣伝どおりに実際に機能する API を提供する責任は Google と YouTube にあります... 私たち自身でできることはないように思えます :(

于 2013-12-19T18:55:41.980 に答える
3

更新 2 - 2013 年 12 月 24 日: この解決策では、実際には問題がまったく解決されていません。

彼の回答で私に言及されたスレッドをたどった後、フォーラムのユーザーは、私のためにトリックを行っているように見える次のソリューションを投稿しました(更新:ランダムなページの読み込みでまだ問題が発生しています:/):

こんにちは、みんな、

http:// を https:// に置き換えるために機能しています

例: http://jsfiddle.net/8tkgW/29/

次のヒントを確認してください

  1. iframe api をロードします https://www.youtube.com/player_api
  2. iframe src パスをロード: https://www.youtube.com/embed/0GN2kpBoFs4?rel=0

新しい YT.Player 経由でプレーヤーをロードする場合は、iframe src パスを確認する必要があります。

setTimeout(function(){
    var url = $('#iframe_youtube').prop('src');
    if (url.match('^http://') {
        $('#iframe_youtube').prop('src', url.replace(/^http:\/\//i, 'https://'));
    }
}, 500);

私のgithubプロジェクトを参照してください:

https://github.com/appleboy/js-video-player/blob/master/js/jsplayer.js#L120

于 2013-11-22T04:50:15.230 に答える