javascript - 使用 Fetch API 发送请求时,Flask render_template() 不起作用
问题描述
我有一个处理长时间运行计算的后台任务。我使用 Redis 和 RQ 来更新进度条。当后台任务完成时,我触发我的应用程序(来自 Javascript)通过使用 Fetch API 向应用程序发送请求来呈现带有我的后台任务结果的页面。
我的路线被执行(我可以设置断点并单步执行我的代码,验证一切正常)。但是,当我在路线末尾返回 render_template() 时,什么也没有发生。
如果我在呈现模板之前打印出请求,然后单击 URL,它会正确呈现。我怀疑 Fetch 生成的请求有问题。下面是我使用 fetch() 的 Javascript 代码。请注意,我使用了与通过单击 URL 产生的请求相同的“内容类型”。
fetch(`/scenario/` + job_id + `/display_result`, {
method: "GET",
headers: {
"content-type": "text/html, application/xhtml+xml;q=0.9,*/*;q=0.8",
},
})
解决方案
我错过了使用请求响应并将其显示在我的页面中,这是最终代码:
fetch(`/scenario/` + job_id + `/display_result`, {
method: "GET",
}).then((response) => {
return response.text();
}).then((html) => {
document.body.innerHTML = html
});
推荐阅读
- python - which data type is faster for cache (dictionary or dataframe)?
- mysql - 如何通过检查数据库中的角色列以经理或员工身份登录?
- hadoop - 检索从特定时间开始的最近 24 小时记录
- opencv - 使用 OpenCV 检测以框为界的手写字符
- fortran - 如何在 Fortran 中将实数设置为空白?
- javascript - Javascript 替换几个损坏的图像,直到你找到一个好的
- java - 20 秒后退出 while 循环
- c# - 图表显示按月记录的数据
- python - 如何获取cmdline为[“python”]的python进程的脚本路径,没有路径?
- javascript - 变量被分配了一个值,但在 Vue 数据对象中声明它并在方法中使用它时从未使用过