Wie möglichen Cross-Origin-Request in JavaScript umsetzen?

hammerman

Grünschnabel
Hi zusammen.

Bevor ich hier die Fülle meiner Probleme schildere, möchte ich erstmal mit einem anfänglichen Problem beginnen.

Szenario:
Ich betreue einen Webshop, welche von einem entsprechenden Anbieter gehostet wird auf dessen Server ich keinen Zugriff habe. Ich kann den Shop nur durch ein CMS organisieren.
Nun wollen wir eine Newsletterverwaltung anbinden, und zwar von Cleverreach.
Leider bieten die angebotenen Lösungen nicht den gewünschten Funktionsumfang, sodass ich jetzt selbst etwas zusammenbasteln muss, um die nötigen E-Mail-Adressen zu übermitteln.
Testweise gelingt dies mit php und der Nutzung von SOAP, aber leider kann ich dies ja für unseren Webshop nicht nutzen.
Nun habe ich herausgefunden, dass es über JavaScript/jQuery Möglichkeiten gibt, SOAP anfragen umsetzen, was für mich jetzt erstmal nach dem gangbarsten Weg aussieht.
Da ich aber leider keine Ahnung von SOAP und jQuery habe, stehe ich nun vor ein paar Problemen. Beim Querlesen zu dem Thema bin ich dann auch häufiger auf das Problem der same origin policy (SOP) gestoßen, welches ich hier als erstes ansprechen möchte.

Wir betreiben also einen Webshop unter der Domain meinedomain.de, welche auf einem Webspace liegt. Von dort möchte ich nun ein SOAP-Request (ich nehme mal an, es handelt sich um ein POST, da ich Daten versenden will) an Cleverreach senden: api.cleverreach.com/soap/interface_v5.1.php

Nun die Frage: Sollte das theoretisch "einfach" funktionieren, oder greift hier die SOP, welche mich daran hindert die Daten an Cleverreach zu senden?

Testweise lasse ich das entsprechende Skript natürlich erstmal nur auf meinem Rechner laufen, aber da sehe ich das gleiche Problem (oder?).

Ich weiß hier wirklich nicht weiter und wäre euch für etwas Hilfe sehr verbunden.

mfg
Hammerman
 
Es gibt zwei Möglichkeiten: entweder Cleverreach bietet ein JavaScript-Skript an, welches du von ihrem Server aus auf deiner Seite einbinden kannst, oder du kannst die Daten an die Seite per GET übergeben. Ansonsten wüsste ich keine andere Möglichkeit, mit der du dieses Problem ohne eine serverseitige Sprache deinerseits lösen kannst.
 
Erstmal vielen Dank für deine Antwort.

Die Daten per GET zu übergeben müsste ja, nachdem was ich so gelesen habe, über Javascript gehen, oder?
 
Ja, aber an sich müsste dann die API JSONP unterstützen. Ansonsten hast du wieder das Problem, dass AJAX unter die SOP fällt.
 
Hi
Habe erst gerade eine Schnittstelle für Cleverreach gebaut. Die SOAP Schnittstelle ist wirklich ganz einfach zu bedienen.
SOAP Schnittstelle:
http://api.cleverreach.com/soap/interface_v5.1.php?wsdl

Doku:
http://api.cleverreach.com/soap/doc/5.0/

Allerdings habe ich mit PHP darauf zugegriffen.
Mit JS habe ich noch nie auf ne SOAP zugegriffen, aber schnelles googlen brachte mir das hier:
http://javascriptsoapclient.codeplex.com/

Du willst Emails hochladen?
Dann erstellst du eine Group und schaust dir dann "receiverAdd" in der Doku an.
Wenn du VIELE Adressen hochlädst dann schau dir den batch Teil an.

Aber wieso mit JS? Hast du mit PHP keine Möglichkeit auf die Daten zuzugreiffen?
 
Leider hosten wir den Server nicht selbst, sondern administrieren den Webshop nur über ein CMS.
Dort haben wir lediglich Zugriff auf XML-Seiten, daher kann ich leider keinen PHP-Code nutzen.

Mit PHP wäre das ja auch alles kein Problem, aber geht halt nicht. Javascript erschien mir das als einzige Alternative.
Allerdings ist mir heute eingefallen, dass ich bei Nutzung von JavaScript wohl alle Daten öffentlich zur Verfügung stelle, um E-Mail-Adressen einzusenden (sollte das irgendwie funktionieren ;) )
Könnte man quasi benötigte Login-/Passwort-Daten auch irgendwie so speichern/senden, dass diese nicht einsehbar sind (versteckt oder verschlüsselt halt).

Ich hoffe da kann noch jemand folgen...

*edit*
Falls es jemandem hilft:
Ich habe die entsprechende PHP-Datei jetzt so modifiziert, sodass ich sie über ein Script in einen iframe laden kann.
So umgehe ich auch das Problem, die für SOAP nötigen Login-Daten im JavaScript zu veröffentlichen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück