2013-12-10 1 views
196

私は、人々が携帯電話からアクセスできるように反応すると思われるWebサイトを開発しています。このサイトには、Google、Facebook、...など(OAuth)を使ってログインできる安全な部分があります。'X-Frame-Options'を 'SAMEORIGIN'に設定したため、フレームに表示されません

サーバーバックエンドはASP.Net Web API 2を使用して開発されています。フロントエンドは主にいくつかのRazorを使用したAngularJSです。

認証部分については、すべてのものは、Androidを含むすべてのブラウザで正常に動作しているが、Google認証がiPhone上で動作していないと、それは私にこのエラーメッセージ

Refused to display 'https://accounts.google.com/o/openid2/auth 
?openid.ns=http://specs.openid.ne…tp://axschema.org/namePerson 
/last&openid.ax.required=email,name,first,last' 
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 

を与える今まで、私は私にはない心配ですHTMLファイル内のiframeを使用します。

私は周りを見つけましたが、その問題を解決する答えはありませんでした。

+0

のiframeが、時にはそれが(一見)表示されていない場合でも、あなたがに接続するサービスで使用されている – NoWomenNoCry

答えて

68

O.K. SO

Overcoming "Display forbidden by X-Frame-Options"

を投稿するこのの助けを借りて、この上でより多くの時間を過ごした後、私はGoogleのURLに投稿する前に、URLの最後に&output=embedを追加することによって、問題を解決するために管理:

var url = data.url + "&output=embed"; 
window.location.replace(url); 
+1

実際にこれがあります私が元の投稿に述べたようにOAUTHのために。それでもOAUTH 2.0ではそうです。 Googleがサービスを使用するように設定を変更したため、OAUTH 2.0を使用するためにいくつかのプロパティを変更する必要があります。これはOWIN 3.0ミドルウェアの場合です。 「access_denied」というエラーメッセージが表示された場合は、このリンクを参照してください。 http://blogs.msdn.com/b/webdev/archive/2014/07/02/changes-to-google-oauth-2-0-and-updates-in-google-middleware-for-3-3- 0-0-rc-release.aspx –

+1

@AliHmerありがとう、たくさんの友達。あなたは私の日を保存しました:)&output = embedは私にとっては魅力的なものとして働いていました.. :) –

+0

アプリのwebview内のGoogleカレンダーのiframeでは機能しません。 – NoBugs

142

私は多分それは誰か が"v/""watch?v="を置き換えることができ、それは修正がconsole.developer.google.comに入り、アプリケーションを追加することでした私にとって

var url = url.replace("watch?v=", "v/"); 
+0

です。歓迎して嬉しいです。 –

+27

" v/"ではなく" embed/"を使用するように変更することもできます。完全なURLは次のようになります。 '