最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

获取API:仅在POST形式没有错误的情况下才重定向

运维笔记admin11浏览0评论

获取API:仅在POST形式没有错误的情况下才重定向

获取API:仅在POST形式没有错误的情况下才重定向

我想执行以下操作:

然后通过获取获取邮寄表格

如果响应是错误消息(res.json):停留在同一页面上,alert(json.errorMsg)

如果响应是重定向到另一个页面(res.redirect):重定向到新页面

问题是

1)如果我使用event.preventdefault(),则我的页面不会重定向

2)如果我不使用event.preventdefault(),我的页面将始终重定向(如果有错误,将重定向到json)

这里是我的代码摘要:

// Client side
form.addEventListener("submit", () => {
  fetch(url, fetchData)
    .then((res) => res.json()) // Transform the data into json
    .then(function (data) {
      alert(data); // Let the user know there was an error in Captcha or provided info
    })
});

// Server side
app.post('/', (req, res) => {
  if (err) {
    console.error(err)
    return res.json({ "success": false, "msg": err })
  }
  return res.redirect("/confirmation_page");
});
回答如下:

通常,这是通过以下两种方法之一解决的:

  1. 表单提交是100%在前端javascript中处理的,例如fetch()。这里的重定向是没有意义的,应该在前端100%处理重定向。
  2. 表单提交是纯HTML。由于验证是服务器的验证,因此服务器将验证请求,并且如果发生验证错误,将back重定向到原始表单。

由于听起来您选择了#1,所以您应该做的是:

  1. 使用preventDefault()
  2. 如果提交成功,请致电document.location = '/confirmation_page';进行重定向
发布评论

评论列表(0)

  1. 暂无评论