【发布时间】:2021-07-31 00:32:48
【问题描述】:
我正在尝试在网站上的路线上以 json 格式获取 sqlite 数据库的数据,这按预期工作,如果我要访问该链接,它会在 chrome devtools 的网络选项卡中显示内容类型是应用程序/json。这当然是我想要的,除非我使用 javascript 向这个特定路由发出 XML GET 请求,它会显示数据类型:text/html。有谁知道如何解决这一问题? python烧瓶代码:
@app.route('/dossiers/all', methods=['GET'])
@login_required
def get_all_dosssiers():
ids = executeQueryResult('SELECT dossierid FROM dossiers', [])
# return jsonify(ids)
print(ids[1].get('DossierId'))
results = []
for id in ids:
results.append(get_dossier(id.get('DossierId')))
return jsonify(results)
JS:
var request = new XMLHttpRequest()
request.open('GET', `http://127.0.0.1:5000/dossiers/all`, true)
request.onload = function () {
// Begin accessing JSON data here
var data = JSON.parse(this.response)
if (request.status >= 200 && request.status < 400) {
data.forEach((dossier) => {
const card = document.createElement('button')
card.setAttribute('class', 'card')
const kruisje = document.createElement('button')
kruisje.setAttribute('class', 'kruisje')
const h1 = document.createElement('h1')
h1.textContent = dossier.ziekte
const p = document.createElement('p')
dossier.description = dossier.description.substring(0, 300)
p.textContent = `${dossier.behandeling}...`
const id = dossier.dossierId
container.appendChild(card)
card.appendChild(kruisje)
card.appendChild(h1)
card.appendChild(p)
card.addEventListener("click", function() {
window.location = `dossier.html?id=${dossier.id}`
})
})
} else {
const errorMessage = document.createElement('p')
errorMessage.textContent = `Het werkt niet...`
app.appendChild(errorMessage)
}
}
【问题讨论】:
标签: javascript python json sqlite flask