Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Vorweg: die Daten-API ist superpraktisch, Kompliment!

Die Aufbereitung der Daten über Observable scheitert am CORS-Error bei der JSON-request. Wschl. sendet https://s2survey.net/ bewusst keinen entsprechenden Header, oder hab ich was übersehen? (Falls ersteres, könnten Sie einen Umweg empfehlen?)

Tausend Dank!

in SoSci Survey (dt.) by s156760 (135 points)

1 Answer

+1 vote

Tatsächlich war die Problematik bisher nicht aufgekommen ... es ist also weder Absicht noch haben Sie etwas übersehen.

Allerdings müsste, wenn mich nicht alles täuscht, der CORS-Header von der Web-Applikation verschickt werden, wo auf den "externen" Inhalte (also die SoSci-API) zugegriffen werden soll. Denn auf dieser Seite (Observable) arbeiten Sie ja mit Ihrem Browser, und dort beschränkt der Browser erstmal den Zugriff auf externe Seiten.

Wenn ich Ihre Frage da falsch interpretiere, posten Sie gerne einen Screenshot, was die Developer-Konsole im Browser anzeigt. Damit sollte sich das Ganze eigentlich recht schnell eingrenzen lassen.

Posten Sie gerne auch ein paar Tipps, wie Sie die SoSci-API in Observable eingebunden haben. Ich habe mit der Plattform noch nicht gearbeitet ... aber nicht mangels Interesse, sondern vor allem deshalb, weil neben der Arbeit an SoSci zu wenig Zeit für so etwas bleibt ;)

by SoSci Survey (146k points)
Vielen Dank für die prompte Rückmeldung!
Wie ich es verstanden habe, müsste die Erlaubnis für die Vermittlung der API-Daten dennoch *von* s2survey *an* Observable (oder einen anderen "Makler") erteilt werden, was aber ein Rumfrickeln an den Servereinstellungen verlangt.

"If the API endpoint is something that you control, then you have to fix those CORS issue there. If the API endpoint is not something that you control, then you have to proxy your request through a server that does have CORS enabled."*

* Fußnote 1 zu https://stackoverflow.com/a/54372790 ; in dieser Fußnote steht auch schon ein Lösungsvorschlag: die API-Antwort über einen eigenen Webserver an Observable/whatever weiterreichen ... und dann hoffen, dass der Kunde nicht auf ein tägliches Excel-Update umwünscht :o)
Das was Sie zitieren, scheint aus der Fehlermeldung eines Browsers zu stammen. Bei Themen auf StackOverflow, die kaum positive Bewertungen haben, bin ich etwas vorsichtig, den Antworten blind zu vertrauen :)

Ich muss mir die Dokumentation zu CORS (https://developer.mozilla.org/de/docs/Web/HTTP/CORS) nochmal zu Gemüte führen und kann dann hoffentlich eine genauere Antwort geben (und evtl. auch eine Lösung).
So ... also ... es ist, wie Sie beschreiben: Eine API-Schnittstelle kann dem Browser per CORS-Header mitteilen, ob man sie aus einer anderen Web-Applikation heraus aufrufen/laden darf.

Für gewöhnlich dürfen die Websites der Web-Applikation entscheiden, ob dort externe Inhalte aufgerufen werden dürfen. Bei CORS hat auch die aufgerufene Website ein Wörtchen mitzureden.

Jedenfalls können Sie beim Anlegen eines API-Links für den Datenabruf auf www.soscisurvey.de und s2survey.net nun ein Kreuzchen setzen, um den Abruf durch externe Web-Applikationen zu erlauben. Wenn das Kreuzchen gesetzt ist, wird der CORD-Header geschickt.
...