{"id":7307,"date":"2024-02-14T17:21:51","date_gmt":"2024-02-14T15:21:51","guid":{"rendered":"https:\/\/churchtools.academy\/?post_type=docs&#038;p=7307"},"modified":"2026-02-09T12:25:26","modified_gmt":"2026-02-09T11:25:26","password":"","slug":"0-cors","status":"publish","type":"docs","link":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-cors\/","title":{"rendered":"CORS"},"content":{"rendered":"\n<p>CORS steht f\u00fcr Cross-Origin Resource Sharing (<a class=\"external\" href=\"https:\/\/developer.mozilla.org\/de\/docs\/Web\/HTTP\/CORS\" target=\"_blank\" rel=\"noopener\">MDN<\/a>). Das ist eine Security Policy, die in Browsern eingebaut ist, um den Nutzer zu sch\u00fctzen. Ganz einfach gesprochen hei\u00dft das, dass eine Webseite nicht einfach fremde Ressourcen (nach)laden kann, die nicht zur eigenen Domain geh\u00f6ren oder explizit erlaubt sind.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Beispiel<\/strong><\/h2>\n\n\n\n<p>Deine eigene Kirchenwebsite ist unter <code>https:\/\/meine-gemeinde-website.de<\/code> erreichbar. Alle Ressourcen, CSS, JS oder Bilder werden von dieser Domain ausgeliefert. Sprich, das Headerbild zum Beispiel w\u00e4re \u00fcber die URL <code>https:\/\/meine-gemeinde-website.de\/header.jpg<\/code> anzusehen. Der Browser erlaubt in diesem Fall, dass das Headerbild geladen wird, weil die Domain dieselbe ist.<\/p>\n\n\n\n<p>Versucht die Webseite, Daten von ChurchTools nachzuladen, um z. B. die Kontaktdaten des Pastors anzuzeigen, dann muss die API <code>https:\/\/meine-gemeinde.church.tools\/api\/persons\/1<\/code> aufgerufen werden. Hier gibt es zwei Szenarien, die unterschieden werden m\u00fcssen:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Backendseitiger Aufruf<\/h3>\n\n\n\n<p>Wenn deine Kirchenwebseite die Kontaktdaten \u00fcber die ChurchTools API \u00fcber den eigenen Server abruft (PHP, NodeJS, etc.) gibt es keine Probleme. Der Aufruf wird als sicher deklariert, weil es der eigene Server ist und hier keiner sonst Zugriff hat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Frontendseitiger Aufruf<\/h3>\n\n\n\n<p>Wird die ChurchTools API \u00fcber das Frontend aufgerufen (Vanilla JS, jQuery, Angular, Vue oder mittels HTML Tags), dann pr\u00fcft der Browser, ob das Laden erlaubt ist. Der Browser tut das, damit der Nutzer nicht fremde Inhalte l\u00e4dt, die ihm ggf. ein Angreifer untergejubelt hat. Der Browser fragt also ChurchTools, ob deine Website mit der Domain <code>meine-gemeinde-website.de<\/code> die Erlaubnis hat, diese Daten zu laden.<\/p>\n\n\n\n<p>Standardm\u00e4\u00dfig ist das nicht erlaubt. Somit wird der API-Call fehlschlagen und es gelangen keine Daten auf die Webseite.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CORS Header setzen<\/h2>\n\n\n\n<p>Damit der API-Call \u00fcber das Frontend gelingt, muss ChurchTools bestimmte CORS Header in der Antwort mitschicken, die explizit alle Webseiten auflistet, die diesen Call ausf\u00fchren d\u00fcrfen.<\/p>\n\n\n\n<p>Die erlaubten URLs, auch Access Control Allow Origins (4) genannt, kannst du in den System-Einstellungen (1) unter <em>Integrationen <\/em>(2)<em> &gt; Cross-Origin-Ressource-Sharing<\/em> (3) einstellen und verwalten.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82.png\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-1024x490.png\" alt=\"\" class=\"wp-image-17157\" srcset=\"https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-1024x490.png 1024w, https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-300x143.png 300w, https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-768x367.png 768w, https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-1536x735.png 1536w, https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82-360x172.png 360w, https:\/\/churchtools.academy\/wp-content\/uploads\/2024\/02\/image-82.png 1539w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<aside class=\"wp-block-group ct-artikel-zum-weiterlesen has-background is-layout-constrained wp-container-core-group-is-layout-89fd719a wp-block-group-is-layout-constrained\" style=\"border-radius:8px;background-color:#f9fafb;margin-top:24px;margin-bottom:24px;padding-top:32px;padding-right:24px;padding-bottom:32px;padding-left:24px\">\n<h4 class=\"wp-block-heading has-medium-font-size\">Artikel zum Weiterlesen<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-api\/\" data-type=\"docs\" data-id=\"7251\">\u00dcberblick API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-api-dokumentation\/\" data-type=\"docs\" data-id=\"7253\">API Dokumentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/0-api-authentifizierung\/\" data-type=\"docs\" data-id=\"7252\">API Authentifizierung<\/a><\/li>\n<\/ul>\n<\/aside>\n","protected":false},"excerpt":{"rendered":"<p>CORS steht f\u00fcr Cross-Origin Resource Sharing (MDN). Das ist eine Security Policy, die in Browsern eingebaut ist, um den Nutzer zu sch\u00fctzen. Ganz einfach gesprochen hei\u00dft das, dass eine Webseite nicht einfach fremde Ressourcen (nach)laden kann, die nicht zur eigenen Domain geh\u00f6ren oder explizit erlaubt sind. Beispiel Deine eigene Kirchenwebsite ist unter https:\/\/meine-gemeinde-website.de erreichbar. Alle [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"doc_category":[370],"doc_tag":[268],"knowledge_base":[346],"class_list":["post-7307","docs","type-docs","status-publish","hentry","doc_category-api","doc_tag-inhalt-veraltet","knowledge_base-system-einstellungen"],"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"year_month":"2026-04","word_count":330,"total_views":"2723","reactions":{"happy":"1","normal":"0","sad":"0"},"author_info":{"name":"Victoria Weidemann","author_nicename":"vweidemann","author_url":"https:\/\/churchtools.academy\/de\/author\/vweidemann\/"},"doc_category_info":[{"term_name":"API","term_url":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/api\/"}],"doc_tag_info":[{"term_name":"Inhalt veraltet","term_url":"https:\/\/churchtools.academy\/de\/docs-tag\/inhalt-veraltet\/"}],"knowledge_base_info":[{"term_name":"System-Einstellungen","term_url":"https:\/\/churchtools.academy\/de\/help\/system-einstellungen\/","term_slug":"system-einstellungen"}],"knowledge_base_slug":["system-einstellungen"],"_links":{"self":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/comments?post=7307"}],"version-history":[{"count":9,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7307\/revisions"}],"predecessor-version":[{"id":48038,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/docs\/7307\/revisions\/48038"}],"wp:attachment":[{"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/media?parent=7307"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/doc_category?post=7307"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/doc_tag?post=7307"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/churchtools.academy\/de\/wp-json\/wp\/v2\/knowledge_base?post=7307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}