ajax Origin null is not allowed by Access-Control-Allow-Origin

Für mobile JS-Applikationen ist es meist erforderlich, die Anfragen direkt per Ajax an einen externen Ziel-Server zu schicken.

In der bisherigen Entwicklung erhielt man in Chrome folgende Meldung

XMLHttpRequest cannot load . Origin null is not allowed by Access-Control-Allow-Origin.

Im Firefox Firebug bekam ich keine Nachricht.

Nachdem ich auf die Dokumentation von Mozilla kam, probierte ich ein wenig mit Response Object herum und folgende, funktionierende Lösung kam heraus

// Headerinformationen, um Ajaxanfragen direkt zu ermöglichen
context.Response.AddHeader("Access-Control-Allow-Origin", "*");
context.Response.AddHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
context.Response.AddHeader("Access-Control-Allow-Headers", "*");

Dies sollte dann wirklich nur an öffentlichen Webservices gemacht werden!

In PHP sieht das ganz dann so aus:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods", "POST, GET, OPTIONS');
header('Access-Control-Allow-Headers *');

Related Posts: