Переменная сеанса недоступна при запросе ajax в edge?

#flask

#flask

Вопрос:

Я попытался просто привести приведенный ниже пример. По сути, я обнаружил, что при обычном запросе страницы, таком как запрос индекса или / login, доступны переменные сеанса. Но для моего вызова ajax из моего метода javascript переменная сеанса недоступна. Моя функция ajax использует выборку для вызова / ajax-call. Это происходит только в браузере edge. Это работает в chrome. Интересно, есть ли у кого-нибудь обходной путь?

app.py

 from flask import Flask
from flask import Flask, flash, redirect, render_template, request, session, abort
import os

app = Flask(__name__)

@app.route('/')
def home():
    print('works all the time', session.get('username'))
    return render_template('login.html')

@app.route('/ajax-call')
def ajax_call():
    print('fails in edge',session['username'])
    return 'data'


@app.route('/login', methods=['POST'])
def do_admin_login():
    if request.form['password'] == 'password' and request.form['username'] == 'admin':
        session['logged_in'] = True
        session['username'] = 'goat'
    else:
        flash('wrong password!')
    return home()

if __name__ == "__main__":
    app.secret_key = os.urandom(12)
    app.run(debug=True,host='0.0.0.0', port=4000)
  

login.html

 <head>
  <script>
    function call_me() {
      fetch(`/ajax-call`)
      .then(function(response) {
        return response.json();
      })

    }
  </script>
  </head>
{% block body %}
{% if session['logged_in'] %}

You're logged in already!
<td><button class="btn btn-outline-danger btn-sm" onclick="call_me()">Delete</button></td>

{% else %}


<form action="/login" method="POST">
  <input type="username" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="submit" value="Log in">
</form>{% endif %}
{% endblock %}