TL;DR: Discourse meldet „Error Embedding
Du solltest möglicherweise topicID verwenden, wie unter Embed Discourse comments on another website via Javascript erwähnt.
Es würde mich nicht wundern, wenn „localhost
@maiki Vielen Dank, dass du dir die Zeit für eine Antwort genommen hast.
Die Verwendung von topicId, wie im Leitfaden beschrieben, führt nicht dazu, dass es funktioniert, und ändert auch keine Symptome. Die angeforderte URL ändert sich zwar natürlich zu https://forum.foo.com/embed/comments?topic_id=2279, aber es erscheint exakt dieselbe Fehlermeldung.
Ich habe auch versucht, die discourseEmbedUrl auf https://foo.com/blog/2019-11-22/foo-0.9.6-released zu ändern, aber auch das hat leider nichts verbessert.
Selbst wenn dies beabsichtigt ist, muss es dokumentiert werden. Zum Beispiel: Werden Anfragen von einer localhost-Seite blockiert, obwohl sie explizit in den erlaubten Hosts aufgeführt ist? Schaut Discourse auf das Referrer-Feld in der HTTP-Anfrage, oder was genau wird verwendet, um diesen Fehler auszulösen? Das muss wirklich geklärt werden, denn bisher habe ich nichts gefunden, das erklärt, warum es nicht funktioniert ![]()
Wie lautet die Fehlermeldung? Steht etwas in der Entwicklerkonsole?
localhost ist keine gültige Domain, sondern ein Hostname.
Ich bin mir nicht sicher, ob es Sinn ergibt, das im Einbettungsleitfaden zu erklären, aber zumindest haben wir dieses Thema zur Referenz! ![]()
Nein, im Dev-Console des lokalen Clients/Browsers auf localhost ist nichts falsch. Die HTML-Antwort wird erfolgreich vom Forenserver zurückgegeben; ich kann sie in den Entwicklertools problemlos sehen.
So sollte es aussehen, wenn es funktioniert (einige Texte zensiert):
So sieht es stattdessen aus (einige Texte zensiert):
Das Forum liefert also lediglich einen 400-Statuscode und „Error Embedding
[quote=“rawtaz, Beitrag:1, Thema:151057”]
Discourse zeigt „Error Embedding
[quote=“simon, Beitrag:6, Thema:151057”]
Ist deine Discourse-Website auf „Anmeldung erforderlich
Aus dem Bauch heraus: Was sich unterscheidet, wenn die Anfrage von meiner lokalen Entwicklungsseite kommt und wenn sie von der Produktionsseite kommt, ist nicht viel. Es sollte nur der HTTP-Referer und natürlich die Quelle der HTTP-Anfrage sein. Ansonsten verwende ich für beide Seiten denselben Browser.
Du kannst testen, ob es sich um ein Problem mit dem Host handelt, indem du versuchst, es auf einer anderen, aktiven Domain einzubetten (vielleicht eine Subdomain einer Domain, die du besitzt).
Ich denke laut nach: Wenn ich Discourse sage, dass es „localhost
[quote=“maiki, Beitrag: 9, Thema: 151057”]
Wenn ich Discourse angewiesen habe, „localhost
Sicherlich muss jemand wissen, ob es möglich sein sollte, Kommentare von domain forum.foo.com in eine lokale Entwicklungswebsite einzubetten? Ich sehe nichts, das besagt, dass es nicht funktionieren sollte (durch das Zulassen von Hosts), aber da es nicht funktioniert, ist es eher unklar.
Es sieht so aus, als läge etwas Größeres vor.
Die Header X-Frame-Options sind auf ALLOWALL gesetzt.
Aber ALLOWALL ist keine gültige Option; siehe X-Frame-Options header - HTTP | MDN
Wenn ich versuche, die Kommentare einzubetten, erhalte ich folgende Fehlermeldung: Beim Laden wurde ein ungültiger X-Frame-Options-Header gefunden. 'ALLOWALL' ist keine gültige Richtlinie.
Nur wenn ich topicId verwende, werden die Kommentare geladen. Ich denke, das liegt daran, dass bei der reinen Einbettung der Kommentare keine vollständigen Berechtigungen erforderlich sind.
Wenn ich versuche, die Kommentare einzubetten, erhalte ich folgenden Fehler:
Beim Laden wurde ein ungültiger X-Frame-Options-Header gefunden ... 'ALLOWALL' ist keine gültige Richtlinie
Danke für die Meldung. In welchem Browser tritt der Fehler auf? Ist der Browser auf dem neuesten Stand?
Es ist in Firefox und auf dem neuesten Stand. Ich habe Chrome geprüft, aber es hat mir keinen Fehler angezeigt – es funktioniert einfach nicht.
Falls sich jemand dafür interessiert: Ich habe mein Problembeispiel bereits früher detailliert beschrieben, und aus irgendeinem Grund funktionierte die Einbettung von Kommentaren problemlos, als wir die Website schließlich veröffentlichten.
Das heißt, das Problem und die Symptome, die ich zuvor beschrieben habe, traten auf, als ich die Website, die Kommentare von forum.domain.com einbettet, auf meinem eigenen System (z. B. localhost oder ähnlich) ausführte. Als ich die Website jedoch auf domain.com veröffentlichte, funktionierte sie sofort.
Wie ich bereits erwähnt habe, kann ich in den Foreneinstellungen nichts finden, das den Zugriff auf oder die Einbettung von Kommentaren aus anderen Quellen als domain.com untersagt. Warum dies nicht funktionierte, bleibt mir daher ein Rätsel. Es muss etwas im Discourse-Code geben, das dies verhindert, aber was genau, weiß ich nicht.
Ich habe versucht, dieses Problem nachzustellen, bin aber bisher nicht dazu in der Lage gewesen. Mit dem Standard-Einbettungsskript werden Kommentare bei mir sowohl im neuesten Chrome als auch im Firefox (beide unter Ubuntu) ohne Fehler angezeigt.
Ein weiterer Prüfpunkt ist, sicherzustellen, dass Sie den Host-Eintrag im Bereich Admin / Anpassen / Einbetten Ihrer Site erstellt haben. Ich erwähne dies, weil ich beim Testen einen Fehler erhielt, da ich die Einstellung „Benutzername für die Themenerstellung
Ich hatte ein ähnliches Problem, glaube ich, und habe es behoben, indem ich die erlaubten Hosts unter Admin > Anpassen > Einbetten von example.com auf www.example.com geändert habe, und es hat funktioniert. Ich habe mein Forum unter subdomain.example.com installiert und vielleicht war das der Grund, warum es Probleme verursachte.
Ich bin mir nicht sicher, ob das hilft, aber ich hoffe es!

