DJango Redirect не обновляет страницу

У меня проблема, когда "return redirect('/main')" работает, но приходится обновлять браузер вручную, чтобы увидеть изменения.

Из шаблона main.html, кнопка onclick вызывает JS jpButton(), которая выполняет работу, затем возвращается к функции DJango, которая обновляет значение сессии, затем перенаправляет на главную страницу, которая будет отображать значение в сессии. Но значение не меняется на странице, пока я вручную не обновлю браузер. Пожалуйста, помогите.

// jsbutton.js - called from onlick button in main template
async function jpButton() {
    ...
    $.ajax({ type: "POST",
        url: 'http://localhost:8080/main/jpConnect',
        headers: { "X-CSRFToken": csrftoken },
        data: { onlinestatus: "Online" },
        ....


### views.py ###
# This redirect works fine
def jpDisconnect(request):
    request.session['onlinestatus'] = None
    return redirect('/main')


# This is called from JS jpButton(), and the browse have to be manually refreshed afterwards
def jpConnect(request):
    if request.headers.get('x-requested-with') == 'XMLHttpRequest':
        request.session['onlinestatus'] = request.POST.get('onlinestatus', None)
    return redirect('/main')


<!-- main.html -->
...
{% csrf_token %}
    {% if request.session.onlinestatus %}
        <a href="{% url 'jpDisconnect' %}">
            <button class="button" type="button" > {{ request.session.onlinestatus }} 
            </button></a>
    {% else %}
        <button class="button" type="button" onclick="jpButton()"> Offline </button></a>
    {% endif %}
...

Странно, но jpDisconnect() обновляет и изменяет значение на странице, а jpConnect() - нет (мне приходится вручную обновлять браузер, чтобы увидеть изменения).

Вернуться на верх