Джанго; перенаправление не работает должным образом при использовании ajax

Я создаю функцию удаления с помощью ajax. перенаправление не работает должным образом.

js

function deleteEntry(entry) {

    var id = $entry.data('id')
    $.ajax({
        url:'/blog/delete/' + id,
        method: 'DELETE',
        beforeSend: function(xhr) {
            xhr.setRequestHeader('X-CSRFToken', csrf_token)
            }
        })
    }
}

views.py

def delete_entry(request, pk):
    if request.method == 'DELETE':
        entry = get_object_or_404(Entry, id=pk)
        entry.delete()
        return HttpResponseRedirect(reverse_lazy('blog:list_entry'))

командная строка выглядит так при выполнении функции

[13/Sep/2018 16:06:02] "DELETE /blog/delete/14 HTTP/1.1" 302 0
[13/Sep/2018 16:06:02] "DELETE /blog/list HTTP/1.1" 200 9878
[13/Sep/2018 16:06:02] "GET / HTTP/1.1" 200 10605

Я хочу сделать перенаправление страницы на blog/list, но страница перенаправляется на /. Я не хочу создавать шаблон для этого представления, а также думаю о том, чтобы сделать что-то вроде окна подтверждения, поэтому я хочу вызвать функцию с помощью js.

Как я могу это исправить?

Это часто задаваемый вопрос. весь смысл использования Ajax заключается в том, что он обходит обычную навигацию браузера. Почему вы вообще используете Ajax, если хотите, чтобы браузер выполнял перенаправление?

Daniel Roseman 13.09.2018 19:07
1
1
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
$.ajax({
    url:'/blog/delete/' + id,
    method: 'DELETE',
    beforeSend: function(xhr) {
        xhr.setRequestHeader('X-CSRFToken', csrf_token)
    },
    success: function () {
       window.location.href = {% url 'the_get_url_you_wanted_to_redirect_to' %}
    }
})

Обратите внимание, что это повторяющийся вопрос, который задают довольно много раз здесь, в stackoverflow, поэтому лучше сначала выполнить поиск, прежде чем публиковать новый вопрос. :) Удачи!

Большое спасибо .. это работает. Я пытался сделать location.href = url, когда искал, но это не сработало .. Но ваш ответ сработал. Я ценю.

user10338659 13.09.2018 20:09

Этот способ не работает внезапно ... Ошибка говорит Uncaught SyntaxError: Unexpected token %

user10338659 14.09.2018 13:18

Другие вопросы по теме