1

データを取得するために (POST を使用して) サーバーにアクセスする必要があるブックマークレットを作成しようとしています。そのデータにアクセスするにはログインする必要があり、これは Cookie を使用して追跡されます。問題は、ブックマークレットがランダムな Web サイトのコンテキストで実行されているため、ヒットしようとしているサイトに属する Cookie にアクセスできず、実際にはそのサイトに属する Cookie を送信することさえできないことです。 Webサイト。

私がやろうとしていることが可能であることを示唆するいくつかのヒントを見てきましたが、これをどのように達成できるかについては少し不明確です. たとえば、この質問では、受け入れられた回答には、次のヒントが含まれています。ページ自体が適切なドメインにあり、必要な Cookie を送信できるという事実と関係があると思いますが、ページにデータを取得して必要なものを伝える方法がわかりません (私はURLパラメーターでリクエストをエンコードした場所で何かを行うことができましたが、これはhttpログに表示され、望ましくありません)、さらに重要なことに、ウィンドウからデータを取得する方法がわかりません-試行するたびに「プロパティ「ドキュメント」へのアクセス許可が拒否されました」(またはアクセスしようとしたもの)という例外が発生します。

4

1 に答える 1

1

あなたはいくつかの質問をしました。

1.) アクセスされているサイトに属するブックマークレット XMLHttpRequest から Cookie を送信するにはどうすればよいですか?

XMLHttpRequest は、呼び出しているドメインに属する Cookie を送信します。ドメインをまたぎたい場合は、CORS を有効にする必要があります: http://enable-cors.org/

2.)「これらのタイプのブックマークレットは、アプリのページを含む小さなポップアップをユーザーに開くことがよくあります」

これは、XMLHttpRequest を作成することではありません。データは GET 経由でポップアップに入ります。POST 経由でこれを行うこともできますが、少し複雑です。「ポップアップに投稿」または「iframe に投稿」を検索するだけです。

3.) ウィンドウからデータを取得する方法がわかりません

他のウィンドウ/iframe が別のドメインからのページを保持している場合は、postMessage を使用します: https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage - これは実際には両方向とCORS を使用せずに複雑なクロスドメイン通信を有効にするために実際に使用できます。

于 2013-08-23T02:09:49.197 に答える