Flask模板渲染不符合预期:GET/POST均显示'no error'而非预期值
Flask模板渲染异常原因分析
问题核心在于fetch发送POST请求后,没有处理返回的模板内容来更新页面:
- 页面初始通过GET请求加载,后端返回无
error参数的模板,页面显示no error。 - 当检测不到
window.ethereum时,script.js用fetch发送POST请求,后端确实返回了带error='not detected'的模板,但fetch仅在后台获取响应,不会自动用新模板替换当前页面。浏览器仍显示最初GET请求加载的内容,所以你看不到not detected。
验证与解决
- 先确认后端是否收到POST请求:查看控制台是否打印
post和false,如果有,说明请求已到达后端,问题出在前端响应处理。 - 处理fetch响应,手动更新页面内容,修改script.js的fetch代码:
fetch(`${window.origin}/`, { method: 'POST', headers: {'content-type': 'application/json'}, body: JSON.stringify({ 'message': false }) }) .then(response => response.text()) .then(html => { document.documentElement.innerHTML = html; });
- 也可以换用表单提交(会自动刷新页面),或者让后端返回JSON数据,前端通过JS动态修改页面元素,而非返回整个模板。
内容的提问来源于stack exchange,提问作者hwhat
相关产品推荐
相关产品推荐

