6

認証なしで Javascript の (XHR)を使用して Google ドライブ ファイルにアクセスするには、HTML ページが必要ですXMLHttpRequest(したがって、ユーザーは Google アカウントでサインインする必要も、Google アカウントを持っている必要もありません)。これらのファイルには、「リンクを知っている全員」の権限があります。これらのファイルは世界中に公開されている (リンクがある) ため、クロスオリジン リソース共有 (CORS) を許可することが問題になる理由がわかりません。

認証が必要なので、それdownloadUrlは実行可能なオプションではないと思います。私はまたwebViewLink、ファイルを「ウェブ上で公開」する必要があると推測する. これは私にとっても実行可能なオプションではありません。これらのファイルには「リンクを知っている全員」権限が必要です。最も有望なリンクはhttp://googleappsdeveloper.blogspot.se/2012/08/5-things-you-didnt-know-you-could-do.htmlwebContentLinkによると、パブリックおよび認証されていないアクセスを許可する です。

私が抱えている問題webContentLinkは、CORS に適していないように見えることです。Chrome で XHR を使用しようとすると失敗します (かなり静かに)。ヘッダーは追加しません。

curl使用した場合と使用--header "Origin: http://www.hello.se"しない場合の両方を試してみると--header "Access-Control-Request-Method: GET"HTTP/1.1 302 Moved Temporarily有効期間の短いコンテンツ URL にリダイレクトされます。問題は、リダイレクト応答にAccess-Control-Allow-Origin、CORS を有効にするために必要なヘッダーの兆候がないことです。

これを機能させるために別の方法でできることはありますか?

それ以外の場合は、Google SDK チーム、webContentLinkCORS をパブリック ファイル (Cookie 認証を必要としない) に適したものにできますか?

4

2 に答える 2

1

JSONP は、クライアントから Google シートを動的に取得する唯一の方法のようです:

1) Google ドライブで、ドキュメントをウェブ上で公開し、共有オプションを [公開] に設定します。

2) JSON タイプのリンクを使用してデータをJSON形式でエクスポートします。次のようになります。JSONP を使用するには、 &callback=myCallback を追加する必要があります。jQuery を使用して JSONP 呼び出しを行うことができます。

3) window.myCallback JS 関数を定義してデータを使用する

于 2015-10-02T11:32:53.737 に答える
0

JS Google API クライアントを使用してみることができます。プロキシ iframe をダウンロードすることで、CORS 制限を回避します。

于 2013-08-29T15:20:52.230 に答える