Извлечение и перенаправление JavaScript через представление фляги не работает должным образомJavascript

Форум по Javascript
Ответить
Anonymous
 Извлечение и перенаправление JavaScript через представление фляги не работает должным образом

Сообщение Anonymous »

Во вступительной HTML-версии веб-приложения для научного исследования данные собираются с помощью форм.
Я добавил функцию JavaScript, которая отправляет данные через API-интерфейс выборки:

Код: Выделить всё

fetch('/prepare/', {
"method": "POST",
"redirect": 'follow',
"headers": {"Content-Type": "application/json", charset:"utf-8"},
"body": data_to_send,
}).then(
response => {
if (response.redirected) {
window.location = response.url;
} else {
window.location = response.url;
}
}
)
Это должно отправить запрос на конечную точку /prepare, для чего я реализовал функцию flask, которая сохраняет данные в базе данных. Функция возвращает перенаправление(url_for(...)) на конечную точку /study/, где начинается фактическая исследовательская задача.

Код: Выделить всё

@app.route('/prepare/', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
# Save JSON to file with task_id as the folder and uuid as the filename
#...

session_id = request.json['session_id']
pid = request.json['pid']

#redirect

return redirect(url_for('study', pid=pid, SESSION_ID=session_id), code=307)
функция для конечной точки /study/ использует render_template для отображения исследовательской задачи.

Код: Выделить всё

@app.route('/study/', methods=['GET', 'POST'])
def study():

print("routed to study")
pid = request.args.get('PID')
session_id = request.args.get('SESSION_ID')

return render_template("interface.html", pid=pid ...)
Перенаправление на html-страницу, отображаемую с помощью /study/, не работает, браузер остается на первой странице, но URL-адрес изменился со всеми парами «ключ-значение» пользовательских данных в качестве параметров. Интересно, что перенаправление работает корректно при отладке и установке двух точек останова при выборке, а затем в функции js. Кроме того, терминал с сервером flask показал, что он действительно правильно перенаправился на конечную точку /study/. Я предполагаю, что существует конфликт между http-запросом и js fetch api, поэтому я установил type="reset" для кнопки html, и теперь это работает. Раньше тип атрибута вообще не устанавливался. Форма кнопки — это пользовательская кнопка, разработанная кем-то другим для исследования (это исследование-воспроизведение). Верен ли мой анализ ошибок? Является ли решение адекватным подходом или мне следует выбрать другой путь?

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»