jQuery 不发送 msg.message

jQuery Don't send msg.message

https://github.com/simpleblog-project/Simple-Blog/issues/1

$.ajax({
      method: "POST",
      url: "http://localhost:5000/auth/login",
      data: JSON.stringify({
        "name"     : id,
        "password" : password
      }),
      contentType: 'application/json'
    })
    .done(function(msg) {
      if (msg.access_token) {
        createCookie(msg.access_token);
        window.location.href = './Main.html';
      }
      else { 
        if(msg.message)
        {
          console.log(msg.message);
          alert(msg.message);
        }
      }
    });

这个

else{
  if(msg.message)
    {
      console.log(msg.message);
      alert(msg.message);
    }
}

那是行不通的。 日志是 jquery-3.3.1.min.js:2 POST http://localhost:5000/auth/login 400(错误请求) 此问题与app.py这部分有关▼

@app.route('/auth/login', methods=['POST'])
def login():
    data = request.json
    name = data['name']
    password = data['password']
    user = User.query.filter_by(name=name).first()
    if user is None or not User.verify_password(user, password):
        return {"message": "invalid username or password"}, 400

    return {
        'access_token': create_access_token(user.id, expires_delta=access_token_exdelta),
        'refresh_token': create_refresh_token(user.id, expires_delta=refresh_otken_exdelta)
    }

打开浏览器到你的页面,在浏览器的代码上打断点,你可以点击F12打开开发者window点击控制台并导航到该行。单击该行以添加断点。(红色项目符号)例如。

if 语句是放置断点的好地方。 (javascript side) 在断点处(你看到一条蓝线/红线)当你点击它时悬停在那个点上,你可以看到你有哪些变量。在控制台中,您可以键入“msg”,它会显示 msg 对象的当前状态。

也可能想在 ajax 调用中添加一个错误部分,只是为了检查 ajax 调用本身是否正常。

 $.ajax({
    method: "POST",
      url: "http://localhost:5000/auth/login",
      data: JSON.stringify({
        "name"     : id,
        "password" : password
      }),
      contentType: 'application/json',
    success: function (data, status, xhr) {
        console.log("Succes!" + data);
    },
    error: function (xhr) {
        console.log("Error happened" +xhr.status);

    }
});

查看 ajax 调用如何工作的文档: https://api.jquery.com/jQuery.ajax/

并检查是否从服务器返回对象“msg”。 祝你好运:).