繁体   English   中英

显示从 POST 请求收到的返回

[英]Display the return received from a POST request

我正在使用香草 javascript 创建对我的 Flask 应用程序的POST请求。 当用户尝试使用现有用户名注册时,我会进行验证检查。 我将 406 状态连同“错误”一起发回:“用户名已被占用”。

我的问题是,如何从POST请求中获取该错误消息以显示在我的前端?

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
  },
  body: JSON.stringify({
    username: e.target.username.value,
    friend_code: parseInt(e.target.friend_code.value),
    dark_mode: null,
    theme: null,
    avatar: null,
    created_at: null,
  }),
});

如果您使用的是 Promise 那么在第一个然后阻止检查响应的status属性,如果它是 406 则显示错误,如果您使用的是异步等待而不是尝试从响应变量中读取status属性。

像这样的 promise 示例

fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
  },
  body: JSON.stringify({
    username: e.target.username.value,
    friend_code: parseInt(e.target.friend_code.value),
    dark_mode: null,
    theme: null,
    avatar: null,
    created_at: null,
  }),
})
.then(response => {
 if (response.status === 406) {
   // your display logic 
 } else {
   // other logic
 }
});

我创建了一个类似的响应-> http://www.mocky.io/v2/5e90c0443300009200e9cc52

{
 "message":"Username already taken"   
}

并以 406 状态发送。

为了得到消息,我做了res=> res.json()返回另一个 promise 然后res.message得到消息

  fetch("http://www.mocky.io/v2/5e90c0443300009200e9cc52")
    .then(res=> res.json())
    .then(res=> console.log(res.message))
    .catch(err=> console.log(err))

在你的情况下res.Error

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM