Ajax POST und Django Tastypie

8
%Vor%

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%     
Rob B 22.08.2011, 16:19
quelle

3 Antworten

3

Ich habe XS_SHARING_ALLOWED_HEADERS zur Middleware hinzugefügt, und das hat das Problem gelöst.

Ссылка

    
Rob B 23.08.2011, 08:56
quelle
7

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%     
Jack M. 22.08.2011 21:43
quelle
3

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.

    
Ko-Chih Wu 21.02.2012 14:56
quelle

Tags und Links