Ich arbeite an einem SDK-Typ für das Senden von Daten (einschließlich Dateiuploads) an einen Dienst, den ich ausführen .Die beste Methode zum Senden/Abrufen von Daten von einem externen Server, wenn Sie Zugriff auf einen externen Server, aber nicht den gleichen Domänenserver haben
Ich mache Nachforschungen, und versuche herauszufinden, die beste Möglichkeit, Daten zu senden und eine Antwort auf einen externen Server (mein Server) erhalten, ohne durch XSS-Einschränkungen blockiert werden.
Das aktuelle Setup ist wie so:
Der Kunde einen Server hostet, und verwendet meine serverseitige Bibliothek. Sie generieren eine Clientseite, die die erforderliche JS von meinem Server lädt. Die Clientseite fordert Daten von meinem Server an (wenn sie beim Laden der Seite nicht vom SDK übergeben wurden) und zeigt die Informationen dem Benutzer an. Der Benutzer löst dann ein Ereignis aus, das Daten (möglicherweise einschließlich Dateiuploads) an meinen Server sendet (nicht an den lokalen Server mit der SDK-Bibliothek). Mein Server antwortet erfolgreich oder fehlgeschlagen und der Client JS behandelt es entsprechend.
Einige Anmerkungen: Mein Server ist ein privater PHP-Server, über den ich die vollständige Kontrolle habe. Obwohl ich alle Daten durch den Server des Kunden routen konnte (wie sie meine Bibliothek verwenden), ist es nicht ideal, da es mehr Einrichtung für den Kunden erfordert, langsamer für den Endbenutzer ist und das Hochladen von Dateien problematisch ist, wie ich möchte diese Dateien auf meinem Server, nicht ihre. Ich dachte, vielleicht die Datei Upload-Eingaben könnten in einem iframe sein. Werden dadurch Uploads direkt auf meinen Server möglich sein? Da der Kunde meine Bibliothek mit einem API-Schlüssel verwendet, kann ich die Anforderungen des Clients authentifizieren, indem ich beim Laden der Seite ein Authentifizierungstoken an das Frontend übergebe, das dann mit jeder Kommunikationsmethode an meinen Server weitergeleitet wird.
Ich bin offen für Veränderungen in der Architektur, aber das ist das ideale Setup für mich. Ich bin mir nur nicht sicher, welche Frontend-Methoden für die Umsetzung am besten sind.
Also, eine Sache, die Sie betrachten müssen, ist [CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) - der Rest ist zu breit für SO –