If for whatever reason you are using django 1.3, you need to ensure
the csrf token generated in the view is passed through unicode. eg
unicode(csrf(request)['csrf_token'])

On Apr 23, 6:04 pm, Luther Goh Lu Feng <elf...@yahoo.com> wrote:
> I have managed to resolve the issue. This only works on phonegap,
> chrome 20 but not on desktop safari 5.1.5.
>
> General strategy:
> - Make an ajax OPTIONS call tohttp://foo
> - Generate the csrf token and return it in the success callback
> - Extract the csrf token
> - In the success callback do the ajax post, and set the request header
> with the csrf token using xhr.setRequestHeader("X-CSRFToken", token)
> - In the middleware you will need to enable CORS and accept the
> csrftoken headder
>
> Desktop safari seemed to fail as it was unable to return the cookie in
> the ajax post call
>
> This is in django 1.4 and with the view decorators:
>
> @ensure_csrf_cookie
> @require_http_methods(["OPTIONS", "POST"])
>
> On Apr 22, 2:57 am, Luther Goh Lu Feng <elf...@yahoo.com> wrote:
>
>
>
>
>
>
>
> > I am running a website on local host (my mac, ip 127.0.0.1) and my
> > django dev server on a VM (some other ip eg. 192.168.56.1).
>
> > I load up the local host website, which 'emulates' the mobile app that
> > I will build using phonegap. I am issuing ajax requests from the
> > website to the django application residing in the VM.
>
> > The views that the requests are routed to are not csrf exempt. As
> > such, I issue a get request on the local website to try and obtain the
> > csrf token:
>
> > $.get('http://127.0.0.1:8000/login')
>
> > In the response headers, the following is returned:
> > Set-Cookie:csrftoken=82c34b2495ad0c7f8a5fed67ca9a21bd; expires=Sat, 20-
> > Apr-2013 05:20:20 GMT; Max-Age=31449600; Path=/
>
> > However, this is unfortunately not found in document.cookie.
>
> > I would like to ask for advice on how I can get around this problems.
>
> > Thanks in advance,
>
> > Luther

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to