如果电子邮件发送失败,如何在 403 客户端显示消息?

Posted

技术标签:

【中文标题】如果电子邮件发送失败,如何在 403 客户端显示消息?【英文标题】:How do I show message on 403 client side if the email fails to send? 【发布时间】:2020-08-24 06:00:45 【问题描述】:

我正在尝试在电子邮件发送或失败时显示警报消息。如果失败,我会从后端得到 403。但不知道如何在客户端显示它。如果成功,我得到一个 200。现在,在失败的情况下,如果我 console.log(res)(如下所示),它显示

res is not defined

Uncaught (in promise) Error: Request failed with status code 403

在网络选项卡中,我得到了响应。没关系。

我只想在我的反应组件中显示它的客户端。

  handleClick = (id) => 
    axios
      .post(`http://localhost:3000/api/v1/users/send-post/$id`)
      .then((res) =>
        console.log(res),
        res.status === 200 ? alert("Email sent"): null
      )
      .catch((err) => 
        if (err) 
          return alert("Sorry, Something went wrong")
        
      )
    

【问题讨论】:

【参考方案1】:

错误状态在err.response.status

修改

if (err) 
          return alert("Sorry, Something went wrong")
        

if (err) 
          return alert("Sorry, Something went wrong. Status "+ err.response.status)
        

作为参考,你检查这个链接https://***.com/a/39153411/12680971

【讨论】:

是的。它在 catch 块中。谢谢。【参考方案2】:

console.log 调用后有一个逗号 ,

下一步:

.then(res => 
   console.log(res);
   res.status === 200 && alert("Email sent");
)

或其他变体:

.then(res =>
   console.log(res) ||
   res.status === 200 ? alert("Email sent") : null
)

【讨论】:

以上是关于如果电子邮件发送失败,如何在 403 客户端显示消息?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 发送邮件失败

邮件测试须知(JavaMail)

如果我的 Google Cloud Scheduler 作业失败,如何发送电子邮件提醒?

如何在 Jenkins 中向开发人员发送构建失败的电子邮件通知

扫描仪通过SMTP中继服务器发送通知邮件失败

相互证书身份验证失败并出现错误 403.16