Daten per Ajax empfangen (Daten liegen auf anderer Domain)
BoFiaZ
- javascript
Hi,
ich habe ein Kontaktformular und arbeite mit jQuery Form um das Formular abzusenden und eine Meldung per Ajax zu empfangen die ich dann wiederrum in einem Div-Container ausgebe. Soweit funktioniert dies ganz tool.
Da ich jedoch mehrere Webseiten mit Formularen habe, habe ich mir nun ein zentrale Domain angelegt die die Scripte beinhaltet die für den Mailversand verantwortlich sind, also die Daten die über das Kontaktformular eingetragen werden absendet.
Allerdings habe ich nun bemerkt das die Daten per Ajax nur empfangen werden können wenn Sie von der gleichen Domain stammen. Wenn ich das Formular auf meine neue Domain absende, dann werden zwar alle Daten übergeben, aber der Text der das PHP Script danach zur Verfügung stellt wird per Ajax nicht in meinem Div-Container geschrieben.
Wenn ich das ganze auf einer einzigen Domain machen funktioniert es bestens. Geht das generell nicht (Daten von einer anderen Website per Ajax auszulesen) oder mache ich da was falsch?
Ich hoffe ich habe mein Problem einigermaßen verständlich erklärt und ihr könnt mir helfen.
Wenn ich das ganze auf einer einzigen Domain machen funktioniert es bestens. Geht das generell nicht (Daten von einer anderen Website per Ajax auszulesen) oder mache ich da was falsch?
Das geht generell nicht: https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript
hi,
Wenn ich das ganze auf einer einzigen Domain machen funktioniert es bestens. Geht das generell nicht (Daten von einer anderen Website per Ajax auszulesen) oder mache ich da was falsch?
Es gilt die sog. Same Origin Policy (SOP). D.h. zwischen DOM und Server geht nur was, wenn das DOM von dem Server stammt, wo dann der Request hingeht.
Workaround: Proxy. Der kann SOP gemäß die Requests handlen und vermittelt zu anderen Domänen mit einem Protokoll Deiner Wahl und das die Security Policy des/der Provider erlaubt.
Hotti
Hallo,
Allerdings habe ich nun bemerkt das die Daten per Ajax nur empfangen werden können wenn Sie von der gleichen Domain stammen. Wenn ich das Formular auf meine neue Domain absende, dann werden zwar alle Daten übergeben, aber der Text der das PHP Script danach zur Verfügung stellt wird per Ajax nicht in meinem Div-Container geschrieben.
Versuch mal die Daten mit getJSON zu holen, das funktioniert laut Doku auch mit fremden Domains.
Gruß,
Tobias