Как описано в заголовке, следующая ситуация:
flask сервер
app = flask.Flask(__name__, static_folder='static')
SESSION_TYPE = 'filesystem'
app.config.from_object(__name__)
logger = logging.getLogger(__name__)
app.secret_key = 'v3563vt3vg3vf3rfgb4ty456b35453b54t3gfefert35'
CORS(app, resources={
r"/*": {
"origins": "*"
}
}, supports_credentials=True)
socketio = SocketIO(app, engineio_logger=True, logger=True)
@app.route('/login', methods=['GET', 'POST'])
def login():
json_data = request.get_json()
session['email'] = json_data['email']
session['name'] = json_data['name']
return "authenticated"
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', 'http://localhost:8080')
response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
response.headers.add('Access-Control-Allow-Credentials', 'true')
return response
@app.route('/checkDatabase', methods=['GET', 'POST'])
def check_database():
to_check = os.path.join(os.getcwd(), "database_" + session['email'])
to_send = ""
if os.path.exists(to_check):
to_send += "database found"
else:
to_send += "database NOT found"
return to_send
vuejs интерфейс
let form = JSON.stringify(this.form);
this.axios
.create({ withCredentials: true })
.post("http://localhost:6543/login", JSON.parse(form), {
headers: {
},
})
Вызов двух API из POSTMAN, flask может успешно сохранить их значения, потому что второй вызов возвращает желаемый ответ. Вместо этого при вызове их из vuejs на странице браузера localhost: 8080 я получаю сообщение об ошибке на главном сервере, потому что он говорит KeyError 'email'.
Я пробовал все решения, найденные в Интернете, но безуспешно. Что я делаю не так?