Не могу получить обратный ответ от flask сервера для обработки в js коде
У меня есть JS реализация кода запросов к серверу:
async function userMapState(latitude, longitude, zoom, update) {
requestData = {
update: update,
mapview: {
center: {
lat: latitude,
lng: longitude
},
zoom: zoom
}
};
const response = await fetch('/api/mapview/userSet', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(requestData)
})
const responseData = await response.json();
if(responseData.map_data) {
console.log(responseData);
}
А также отдельный файл flask_app.py, в котором выбирается конкретный метод для выполнения на сервере:
@app.route("/api/mapview/<task>",methods=["POST","GET"])
def mapview(task):
if flask.request.method == "GET":
if task == "get": return tasks.get_map_data()
elif flask.request.method == "POST":
if task == "set": return tasks.set_map_data(flask.request.json)
if task == "userSet": return tasks.user_set_map(flask.request.json)
flask.abort(404)
Ну и сами методы лежат в файле flask_tasks.py:
def user_set_map(map_data) -> Response:
upd_flag = map_data.get("update", False)
map_data = map_data.get("mapview")
if upd_flag:
with open('map_data.json', 'w') as file:
json.dump(map_data, file)
return jsonify({
"message": "Map position set, map_data update",
"map_data": map_data
}), 200
else:
with open('map_data.json', 'w') as file:
json.dump(map_data, file)
return jsonify({
"message": "Map data update",
}), 200
Суть в том, что я отправляю данные с координатами в формате JSON, на сервере эта информация обрабатывается и в зависимости от true/false, дальше должна идти отправка данных обратно, как тут например:
const response = await fetch('/api/mapview/userSet', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(requestData)
})
const responseData = await response.json();
if(responseData.map_data) {
console.log(responseData);
}
По идее, данные должны вернуться, а responseData принять их содержимое, но этого не происходит. Я просто хочу вывести данные в консоль браузера, но ничего не происходит. В чем может быть проблема?