为什么我的请求适用于邮递员,但不适用于vue.js axios?

时间:2020-09-14 23:29:22

标签: vue.js flask axios

我使用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

帮我,我迷失了方向! (:

1 个答案:

答案 0 :(得分:1)

Axios默认发布一个application/json请求正文。

要读取Flask中的JSON有效负载,请使用request.json

content = request.json
mail = content["mail"]

我只能假设Postman可以工作,因为您正在发布application/x-www-form-urlencoded请求正文或使用URL查询参数。

要匹配您在Axios中的工作,请确保发布JSON

postman