Ich entwickle eine Website, die reaktionsschnell sein soll, damit die Leute von ihren Handys aus darauf zugreifen können. Die Site verfügt über einige gesicherte Teile, bei denen Sie sich mit Google, Facebook usw. anmelden können (OAuth).
Das Server-Backend wurde unter Verwendung der ASP.Net-Web-API 2 entwickelt und das Front-End besteht hauptsächlich aus AngularJS mit einigen Razor.
Für den Authentifizierungsteil funktioniert in allen Browsern, einschließlich Android, alles einwandfrei, aber die Google-Authentifizierung funktioniert auf dem iPhone nicht und es wird diese Fehlermeldung angezeigt
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'.
Soweit es mich betrifft, verwende ich keinen Iframe in meinen HTML-Dateien.
Ich habe gegoogelt, aber keine Antwort hat mich dazu gebracht, das Problem zu beheben.
quelle
Antworten:
Ich habe eine bessere Lösung gefunden, vielleicht kann sie jemandem helfen,
"watch?v="
durch zu ersetzen,"v/"
und es wird funktionierenquelle
<iframe width='1080' height='760' src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>
OK, nachdem Sie mit Hilfe dieses SO-Beitrags mehr Zeit damit verbracht haben
Überwindung von "Anzeige durch X-Frame-Optionen verboten"
Ich habe es geschafft, das Problem zu lösen, indem ich es
&output=embed
vor dem Posten auf der Google-URL am Ende der URL hinzugefügt habe :quelle
Versuchen zu benutzen
Sie finden den gesamten eingebetteten Code im Abschnitt "Eingebetteter Code", und das sieht so aus
quelle
In diesem Fall haben sie den Header auf SAMEORIGIN gesetzt, was bedeutet, dass sie das Laden der Ressource in einem Iframe außerhalb ihrer Domäne nicht zugelassen haben. Dieser Iframe kann also keine domänenübergreifende Anzeige anzeigen
Zu diesem Zweck müssen Sie den Speicherort in Ihrem Apache oder einem anderen von Ihnen verwendeten Dienst abgleichen
Wenn Sie Apache verwenden, dann in der Datei httpd.conf.
quelle
your_relative_path
?Wenn Sie iframe für vimeo verwenden, ändern Sie die URL von:
zu:
Für mich geht das.
quelle
Zum Einbetten von YouTube-Videos in Ihre AngularJS-Seite können Sie einfach den folgenden Filter für Ihr Video verwenden
quelle
Ich habe die folgenden Änderungen vorgenommen und funktioniert gut für mich.
Fügen Sie einfach das Attribut hinzu
<iframe src="URL" target="_parent" />
_parent
: Dies würde die eingebettete Seite im selben Fenster öffnen._blank
: In einer anderen Registerkartequelle
Für mich bestand die Lösung darin, in console.developer.google.com die Anwendungsdomäne zum Abschnitt "Javascript Origins" der OAuth 2-Anmeldeinformationen hinzuzufügen.
quelle
Etwas spät, aber dieser Fehler kann auch verursacht werden, wenn Sie a
native application Client ID
anstelle von a verwendenweb application Client ID
.quelle
Ich hatte das gleiche Problem bei der Implementierung in Angular 9. Dies sind die beiden Schritte, die ich ausgeführt habe:
Ändere deine YouTube-URL von
https://youtube.com/your_code
nachhttps://youtube.com/embed/your_code
.Und dann geben Sie die URL
DomSanitizer
von Angular weiter.quelle
Es gibt eine Lösung, die für mich funktioniert hat und sich auf die Eltern bezieht. Nachdem Sie die URL erhalten haben, die zur Google-Authentifizierungsseite umleitet, können Sie den folgenden Code ausprobieren:
quelle
Danke für die Frage. Für YouTube-Iframe ist das erste Problem die von Ihnen angegebene URL, eine eingebettete URL oder ein URL-Link aus der Adressleiste. Dieser Fehler gilt für nicht eingebettete URLs. Wenn Sie jedoch eine nicht eingebettete URL angeben möchten, müssen Sie in "safe Pipe" wie (sowohl für nicht eingebettete als auch für eingebettete URLs) codieren:
es wird "vedioId" aufgeteilt. Sie müssen die Video-ID abrufen und dann die URL als eingebettet festlegen. In HTML
Angular 2/5 nochmals vielen Dank.
quelle
Fügen Sie das Folgende mit dem URL-Suffix hinzu
quelle
Hatte ein ähnliches Problem beim Einbetten des YouTube-Chats und ich finde es heraus. Vielleicht gibt es eine ähnliche Lösung für ein ähnliches Problem.
Meine Webseite funktioniert mit www und ohne. Damit es funktioniert, müssen Sie sicherstellen, dass Sie diejenige laden, die auf dem Wert embedded_domain = aufgeführt ist. Möglicherweise fehlt eine Variable, um anzugeben , wo Ihr Iframe eingebettet werden soll. Um mein Problem zu beheben, musste ein Skript geschrieben werden, um die richtige Webseite zu erkennen und den richtigen iframe-Einbettungsdomänennamen auszuführen.
oder
Verstehen Sie, dass Sie keine Iframes verwenden, aber möglicherweise müssen Sie Ihrer Syntax noch eine Variable hinzufügen, um anzugeben, wo das Skript verwendet werden soll.
quelle
Bei der Verwendung von iframe zum Abmelden von Unterseiten mit unterschiedlichen Domänen ist dieses Problem aufgetreten. Die Lösung, die ich verwendet habe, bestand darin, zuerst den Iframe zu laden und dann die Quelle zu aktualisieren, nachdem der Frame geladen wurde.
quelle
Youtube / Embed, zwei Geschmacksrichtungen:
https://www.youtube.com/embed/watch?v=eAxV4uO8oTU&list=RDeAxV4uO8oTU&start_radio=1 https://www.youtube.com/embed/CNG7yrHHJ5A
in Ihren Browser einfügen und sehen
das Original:
https://www.youtube.com/watch?v=eAxV4uO8oTU&list=RDeAxV4uO8oTU&start_radio=1 https://www.youtube.com/watch?v=CNG7yrHHJ5A
einer muss "Wache halten? V =", der andere nicht
quelle