我使用Flask做了一个后背,使用vue.js做了一个前背,
为什么我用邮递员发出请求,但返回的却是我想要的,而axios ...
例如:
this.$axios
.post('http://127.0.0.1:5000/getUserDataByMail', { mail: 'test@test.com' })
.then(response => {
console.log('this.userData')
console.log(response.data)
this.userData = response
}
)
已通过治疗:
@app.route('/getUserDataByMail', methods = ['GET', 'POST'])
def getUserDataByMail():
args = request.args
mail = args['mail']
return jsonify(mail)
cur = mysql.connection.cursor()
dataCur = cur.execute('select * from userdata where email like "' + mail + '"')
if dataCur > 0:
data = cur.fetchall()
cur.close()
return jsonify(data)
cur.close()
但这会导致错误400 ...
POSThttp://127.0.0.1:5000 / getUserDataByMail [HTTP / 1.0 400错误请求4ms] 未捕获(承诺)错误:请求失败,状态码为400
帮我,我迷失了方向! (:
答案 0 :(得分:1)
Axios默认发布一个application/json
请求正文。
要读取Flask中的JSON有效负载,请使用request.json
content = request.json
mail = content["mail"]
我只能假设Postman可以工作,因为您正在发布application/x-www-form-urlencoded
请求正文或使用URL查询参数。
要匹配您在Axios中的工作,请确保发布JSON