本文解决 flask + javascript 中 `fetch` 返回原始 json 字符串而非解析后对象的问题,避免页面被字符串字面量覆盖,并确保 `datestr` 等字段正确传递与使用。
在你当前的代码中,核心问题有两个层面:前端数据解析错误 和 后端字段缺失隐患。
首先,fetch().then(resp => resp.text()) 仅将响应体作为纯文本(如 ‘{“curr_size”:”1″,”max_size”:”5″,”recurring”:”on”}’)返回,而你直接将其插入 HTML:
document.getElementById('current_availability').innerHTML = `<h3>${dataobj}</h3>`;
这会导致浏览器把整个 JSON 字符串当作普通文本渲染(例如显示为 {“curr_size”:”1″,…}),而非解析为 JS 对象——因此 dateStr 看似“丢失”,实则是它根本没被后端返回(见下文),且前端也未尝试读取其属性。