Hey Leute
Bei einem größeren Projekt habe ich Probleme mit der Same Origin Policy. Ich habe mehre Microcontroller und auf jedem läuft ein sehr abgesteckter Webserver (kein php) und zwischen denen muss ich Daten hin und her schicken. Ich habe das Probleme jetzt etwas isoliert und auf normale Webserver verschoben, um es einfacher zu testen.
Datei 1.html auf domainA.de
Datei 1.php auf domainB.de
Im Endeffekt ist auf domainB ein kleines php-Skript, dass nur die Werte, die von domainA gesendet werden, ausgeben soll.
Safari gibt mir dazu natürlich dieses Fehlermeldung aus:
Meine Frage ist jetzt: Wie kann ich domainB.de sagen, dass Daten von domainA.de akzeptiert werden soll (oder anders herum). Ich hoffe, ihr könnt mir helfen.
Vielen Dank, Gruß Flo
Bei einem größeren Projekt habe ich Probleme mit der Same Origin Policy. Ich habe mehre Microcontroller und auf jedem läuft ein sehr abgesteckter Webserver (kein php) und zwischen denen muss ich Daten hin und her schicken. Ich habe das Probleme jetzt etwas isoliert und auf normale Webserver verschoben, um es einfacher zu testen.
Datei 1.html auf domainA.de
Code:
<!DOCTYPE html>
<html>
<head>
<script>
function changeEvent() {
var xmlhttp; // Variable xmlhttp anlegen
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest(); // XMLHttpRequest für IE7+, Firefox, Chrome, Opera, Safari
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // XMLHttpRequest für IE6, IE5
}
xmlhttp.onreadystatechange = function() { // jedes mal, wenn der Status geändert wird, wird diese Funktion aufgerufen
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { // readyState = 4 entspricht request finished and response is ready und status = 200 entspricht ok
document.getElementById("myDiv").innerHTML=xmlhttp.responseText; // das, was xmlhttp zurück gibt, soll an die Stelle myDiv geschrieben werden
}
}
xmlhttp.open("POST","http://www.domainA.de/1.php",true); // Request Verbindung aufbauen, Methode Post, URL, true bleibt immer
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // Header Informationen
xmlhttp.send("fname=Henry&lname=Ford"); // Variablen mit den Werten, die übergeben werden soll
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="changeEvent()">Change Content</button>
</body>
</html>
Datei 1.php auf domainB.de
Code:
<?php
echo $_POST['fname'];
echo '<br />';
echo $_POST['lname'];
?>
Im Endeffekt ist auf domainB ein kleines php-Skript, dass nur die Werte, die von domainA gesendet werden, ausgeben soll.
Safari gibt mir dazu natürlich dieses Fehlermeldung aus:
Code:
XMLHttpRequest cannot load http://www.domainB.de/1.php. Origin http://www.domainA.de is not allowed by Access-Control-Allow-Origin.
Meine Frage ist jetzt: Wie kann ich domainB.de sagen, dass Daten von domainA.de akzeptiert werden soll (oder anders herum). Ich hoffe, ihr könnt mir helfen.
Vielen Dank, Gruß Flo
Zuletzt bearbeitet: