0

Rails 4 サイトの Filepicker.io に問題があります。具体的には、Filepicker.io ウィジェットを介してファイルをアップロードしようとすると、次の JavaScript エラー メッセージが表示されることがあります (約 50% の確率で)。

Blocked a frame with origin "https://www.filepicker.io" from accessing a frame with origin "https://salesbeach.com". Protocols, domains, and ports must match. 

これは、Chrome と Firefox の両方で発生します。私の仮定では、Filepicker.io はAccess-Control-Allow-Origin: *ヘッダーを返す必要がありますが、そうではありません。ただし、他のサイトでは Filepicker.io を使用しましたが、この問題は発生していません。Turbolinks が原因ではないかと考えています。

診断情報

私の JavaScript 呼び出しは次のとおりです。

filepicker.pickAndStore({mimetypes: mimeTypes},{},function(fpfiles) { ... }

そして、次の方法で Filepicker ライブラリ ( HTML 内<head>)をロードします。

(function() {
  $(document).ready(function() {
    $.getScript('//api.filepicker.io/v1/filepicker.js', function() {
      filepicker.setKey('#{MY_API_KEY}');
    });
  })
})();

<iframe>は、次の HTTP 要求/応答があります (Chrome デバッグ ツールから)。

リクエスト

Request URL:https://www.filepicker.io/dialog/comm_iframe/
Request Method:GET
Status Code:200 OK
Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:www.filepicker.io
Pragma:no-cache
Referer:https://salesbeach.com/playground
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1566.2 Safari/537.36

応答

Response Headers
Connection:keep-alive
Content-Encoding:gzip
Content-Length:857
Content-Type:text/html; charset=utf-8
Date:Fri, 19 Jul 2013 19:23:22 GMT
P3P:CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'
P3P:CP="OTI DSP COR ADM DEV TAIo PSA PSD IVAi IVDi CONi HIS OUR IND CNT COM INT NAV"
Server:nginx
Vary:Accept-Encoding

また、バグを再現した遊び場を含めました: Playground Environment

4

1 に答える 1

2

わずかに変更: filepicker.io Javascript API 呼び出しにより、安全でない JavaScript エラーが発生する

これは既知のchrome/webkit の問題です。これは、JavaScript (インク ファイル ピッカーで使用される手法) を使用してフラッシュ タグをそれ自体に追加するクロス ドメイン iframe で発生します。これは機能に影響を与えるものではなく、フラッシュ検出を使用して Web カメラの画像とビデオの録画オプションが可能かどうかを確認しようとした結果です。

于 2013-07-20T16:24:13.467 に答える