Das obige funktioniert gut, aber wenn ich versuche, den POST im Ajax unten zu replizieren, bekomme ich 500 Fehler.
%Vor%Fehlermeldung ist:
%Vor%Bemerkenswert ist, dass es sich um eine Cross-Domain handelt, und ich benutze die django-crossdomainxhr-middleware.py, die über git: gist gefunden wurde.
Wenn ich dem Ajax-Aufruf einen Inhaltstyp wie folgt hinzufüge:
%Vor%Ich bekomme diesen Fehler zurück:
%Vor% Sie deklarieren Ihren Inhaltstyp explizit in Ihrem Aufruf von curl
, aber Sie sind nicht spezifisch für Ihre jQuery.ajax()
Anruf.
Aktualisieren Sie Ihr JavaScript, um genau festzulegen, was der Inhaltstyp sein soll:
%Vor%Fügen Sie XsSharing (https://gist.github.com/1164697) zu settings.py:
hinzu %Vor%Verwenden Sie dann das folgende Javascript, um einen Ajax-Aufruf zu machen:
%Vor% Beachten Sie, dass data
eine wohlgeformte JSON-Zeichenfolge sein muss, andernfalls ignoriert jQuery automatisch den Ajax-Aufruf und macht nichts.
Was hinter den Kulissen ist, ist, dass der Ajax-Aufruf zuerst OPTIONS /geo/api/geolocation/
sendet. Da der Antwortheader von der XsSharing-Middleware geändert wird, gibt jQuery eine weitere POST /geo/api/geolocation
-Anforderung aus, die die eigentliche Erstellung durchführt.