Cross Domain, XMLHttpRequest, Header Problem

flohaase

Mitglied
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

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:
Den Lin kenne ich schon, aber als ich das erste mal drauf war, hatte ich noch kein Grundwissen. Ich werde es mir noch mal anschauen. Dank dir.
 
Zurück