2009-07-19 4 views
1

Ich versuche, einfache Flex-Anwendung zu erstellen, die Django als Back-End-Teil verwendet. Haben Sie eine Frage:Gibt es eine Möglichkeit, meinen Flex Builder an meine Django-Anwendung zu binden

Normalerweise wenn ich meine Anwendung Flex Builder erstelle eine Datei in einem Verzeichnis auf meinem lokalen PC und öffnet dann einen Browser und zeigt darauf. Alles war in Ordnung, aber als ich mich entschied, den Django-Server über xml-Datenprovider mit Flex-Anwendungen zu verbinden, fing ich an, Sicherheitsfehler zu bekommen. (Bezogen auf das Fehlen von crossdomain.xml). Wenn habe ich die Datei und legen Sie sie auf dem Server:

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
    <allow-access-from domain="http://127.0.0.1:8000"/> 
    <allow-access-from domain="127.0.0.1"/> 
</cross-domain-policy> 

Dann erneut die Anwendung versucht, bekam ich Fehler in der Konsole meiner FB Fehler: Antrag auf Ressource bei http://127.0.0.1:8000/go/active/ durch Anforderer von file: /// Users/oleg/Documents/FB3/usersList/bin-debug/usersList.swf wird aufgrund fehlender Berechtigungen für Richtliniendateien abgelehnt.

Ich weiß nicht, wie Sie den Fehler beheben. Aber auch die Frage, gibt es eine Möglichkeit, FB3 so zu konfigurieren, dass meine SWF-Dateien direkt auf den Server gestellt werden, also brauche ich keine Crossdomain?

Dank Oleg

Antwort

0

Ich weiß nicht, einen Weg Flexbuilder zu erhalten, um automatisch Ihre geänderten SWF einzusetzen; Sie könnten sicherlich in einen Automatisierungsansatz (wie Maven und Flex-Mojos) schauen, um dies zu ermöglichen.

Das heißt, die Beseitigung dieses Fehlers ist in der Regel nur eine Frage von policy file auf dem Server.

0

Der zweite Fehler wird verursacht, weil Sie versuchen, http-Ressourcen von einem "Datei" -Platz abzurufen. Meine Empfehlung ist, dass Sie Ihr Flex Builder-Projekt ändern, damit es an einen Speicherort auf der Django-Website und nicht an das Verzeichnis "flex-bin" ausgegeben wird. Diese Einstellung kann im Eigenschaftendialog des Projekts geändert werden. Dann sollten Sie in der Lage sein, das Front-End und Back-End dasselbe Protokoll und dieselbe Domäne zu teilen.

1

Wir hatten eine Menge Probleme damit. Das Flex-Sicherheits-Zeug hat mich nicht so gut gefallen, aber vielleicht hatten wir einfach andere Ansätze im Kopf als die Entwickler von Adobe. Die Lösung, die für uns funktionierte, bestand darin, sowohl die SWF- als auch die dynamischen Daten vom selben Host und Port zu bedienen.

In unseren Entwicklungsfeldern teilen wir Apache mit, dass er die SWF aus einem Verzeichnis im Arbeitsbereich und den dynamischen Daten aus einer lokalen Kopie der App bedienen soll. Wenn wir zur Produktion übergehen, werden SWF und App gleichzeitig an denselben virtuellen Host gesendet.

Wenn das für Sie unbequem ist, kann der Apache ProxyPass directive verwendet werden, um Apache Front für andere Server zu machen. Ich habe das nicht in der Produktion verwendet, aber es war sehr praktisch für Entwickler-Setups.

+0

Das ist ein völliger Schmerz! Ich habe eine Anwendung, die meine SOAP WebServices bedient und ich möchte in der Lage sein, von meiner Flex-App in der Entwicklung zu verbinden ... das Hosting auf dem gleichen Port wird ein Pita sein: Ich denke, ich werde tun müssen, was Sie vorschlagen . – jkp

Verwandte Themen