I added the getcookie call to grab csrftoken (ref from the link you
provided),
but the farthest I can get is by setting ajax async:false which causes the
status reported by chrome developer tools (for call /messages/marked_read/X
) to be PENDING.
Without async:false, it just goes to CANCELLED.
Either way I cannot get the ajax call to succeed in triggering the django
backend at all.
Nor do the server error logs report anything going wrong.
On Friday, July 5, 2013 12:03:55 AM UTC-5, Peith wrote:
>
> If that's an AJAX POST request, then it may be because you are not passing
> the CSRF token in the header. Add this code before doing the AJAX call:
>
> function csrfSafeMethod(method) {
> // these HTTP methods do not require CSRF protection
> return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));}$.ajaxSetup({
> crossDomain: false, // obviates need for sameOrigin test
> beforeSend: function(xhr, settings) {
> if (!csrfSafeMethod(settings.type)) {
> xhr.setRequestHeader("X-CSRFToken", csrftoken);
> }
> }});
>
> See here: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax
>
>
>
>
> On Fri, Jul 5, 2013 at 10:03 AM, <[email protected] <javascript:>> wrote:
>
>> So I have django 1.5.1 installed,
>> have persistent messages installed, and have messages displaying in a list
>> via the template reference {% include
>> "persistent_messages/message/includes/messages.jquery.html" %}
>>
>> The following javascript click trigger is bound to an anchor tag within
>> the list:
>>
>> $(closeSelector).click(function(event) {
>> event.preventDefault();
>> $.ajax({
>> url: "//url.com/"+$(this).attr('href')
>> })
>> if ($(messageSelector).length <= 2) {
>> $(closeAllSelector).messageClose();
>> }
>>
>> $(this).closest(messageSelector).messageClose();
>> });
>>
>> The link being referenced is https://url.com/messages/mark_read/583/
>> If I access that same link manually in the address bar, the appropriate
>> call in the backend
>> gets executed and the message is marked read. The ajax equivalent never
>> seems to respond.
>> I added logging to the persistent messages view and confirmed the ajax
>> call is never
>> calling mark_read() method.
>>
>> Chrome dev tools indicates that the ajax call is "pending" and never
>> changes from this state.
>>
>> Any suggestions or ideas on what may be causing this?
>>
>> NOTE: I prepend the "//url.com" to avoid getting 'insecure content'
>> warnings, since this ajax code is being executed
>> from a https page. This change did not seem to affect the bug in any way,
>> since the response is the same.
>>
>> Thanks in advance
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/django-users.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.