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:

Composite C1 CMS mvcplayer verarbeitet kein json

Im CMS Composite C1 gibt es den mvcplayer. Dieser ermöglicht es, MVC-basierte Module zu entwickeln. Klingt nicht schlecht, funktioniert leider nicht 100%. Ich wollte per ajax eine Methode aufrufen, um einfach JSon Daten zu bekommen, da verweigerte der “mvcplayer” seinen Dienst. Ich bekam eine leere Seite, das die Verbindung unterbrochen wurde…

Dies habe ich versucht:

 
#region ajax methods
 
// This doesn't work!
public JsonResult GetRoutesListByLocationId(int id)
{
    List<route> myRoutes = this._service.GetRoutesListByStartLocationId(id);
    return Json(myRoutes, JsonRequestBehavior.AllowGet);
}
 
#endregion
 
</route>

Laut Dokumentation soll die Variante funktionieren, einen string zurück zu geben. Dann habe ich als Workaround diese Lösung entwickelt:

 
public string GetRoutesListByLocationId(int id)
{
    List<route> myRoutes = this._service.GetRoutesListByStartLocationId(id);
    return new JavaScriptSerializer().Serialize(myRoutes);
}
 
</route>

Ich habe schon eine E-Mail an die Entwickler geschrieben und hoffe, das es bald gefixt sein wird.

Da es nichts weiter in den gängigsten Suchmaschinen dazu gibt, habe ich diese Lösung einfach mal notiert. Für ein Feedback oder anderen Lösungsvorschlag würde ich mich freuen.

Links

Related Posts:

[ajax] – miniajax.com

gerade gefunden:

http://miniajax.com/

eine kleine Übersicht über Ajaxfeatures und Beispiele.

Mein persönlicher favourit: http://www.unwieldy.net/ajaxim/ Ajax Instant Messenging

Sehr nett

Related Posts:

MS Ajax Final v1.0

Das Microsoft AJAX Framework ist nun in der finalen Version 1.0 verfügbar. Hier kann masich mal das AJAX Control Toolkit anschauen.

Einfach nur Hammer

ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient, more interactive and highly-personalized Web experiences that work across all the most popular browsers.

Related Posts:

  • No Related Posts