0

私は自分のサイトで Facebook ログインを使用しています。ローカルでテストするときは を使用する必要があるためlocal.mysite.com、Facebook はリクエストが私のサイトから来ていると考えます。ブロブストアに画像をアップロードする場合を除いて、これはうまく機能します。画像をアップロードするとき、アプリ エンジンは常に に切り替わりますlocalhost:888。これにより、ブラウザーはクロス サイト スクリプティングが発生していると認識し、アップロードを妨げます。local.mysite.com代わりにアプリエンジンを強制的に使用するにはどうすればよいですかlocalhost:888

これは私が得ているエラーです:

XMLHttpRequest cannot load http://localhost:8888/_ah/upload/agpidWJwcm9qZWN0chsLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YBQw. Origin http://local.mysite.com:8888 is not allowed by Access-Control-Allow-Origin. 
4

1 に答える 1

0

その URL を実際に変更できるかどうかはわかりません。

ただし、できることはlocalhost:8888、ローカル テストに を使用して、localhost を指す別の Facebook アプリケーションを作成することです。その後、アプリでこれら 2 つ (または将来的にはさらに多く) の Facebook アプリケーションを使用できるようにするために実行できる 2 つのアプローチがあります。

  • 要求された URL に基づいて、使用するキーを決定できます。
  • 管理者のみが変更できる何らかの構成データストアにすべてのキーを保存します

最初のアプローチでは、何らかの方法ですべてのキーをコードに保存するか、さらに悪いことにデータストアに保存してから、URL に基づいてどれを使用するかを決定する必要があります。このアプローチは良くなく、うまくスケーリングできません。キーをコードに保存する必要がないため、2 番目のアプローチが推奨されます。これは、Facebook アプリケーションがいくつあるかを事前に知る必要がないため、より安全で、スケーリングがはるかに優れています。

Pythonでそれを解決する方法についてのNick Johnsonの回答を読むことができますが、アイデアはJavaであるため、それほど難しくありません。

于 2013-04-25T06:48:31.003 に答える