首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在实现post-redirect-get模式时如何消除错误的成功消息?

在实现post-redirect-get模式时如何消除错误的成功消息?
EN

Stack Overflow用户
提问于 2019-06-04 10:00:18
回答 1查看 41关注 0票数 0

在web应用程序中实现post-redirect-get模式时,服务器代码中的最后一步通常如下所示(伪代码):

代码语言:javascript
复制
if (postSuccessful) 
{
    redirect("/some-page?success=true")
}

也就是说,重定向URL在查询字符串中具有某种success参数,这样您就可以知道何时显示一条漂亮的"Your form has submitted!“您的页面上的消息。这样做的问题是,当只需要初始化页面时,success=true会保存在查询字符串中。如果用户刷新页面或将其加入书签,即使没有其他帖子发生,他们也会收到一条错误的成功消息。

有没有一个很好的解决方案,不需要使用JavaScript从查询字符串和浏览器历史记录中删除success=true?这种解决方案是可行的,但肯定会增加页面加载过程的复杂性。

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 06:18:53

您可以使用服务器端技术来实现此功能,而无需任何JavaScript。stes列表如下:

  1. post成功后,重定向到带有当前时间戳信息的/some-page

如果服务端收到redirect("/some-page?success=true×tamp=1559859090747")请求时(postSuccessful) {redirect(“/some-page?success=true×tamp=1559859090747”)}

  • GET /some-page?success=true&timestamp=1559859090747,则将timestamp参数与当前时间戳进行比较,确认是否在最近3秒内(也可以根据网络environment).

  • If修改此值,timestamp参数在最近3秒内,则说明此GET /some-page?success=true请求是服务端重定向的结果。

  • 在处理GET /some-page的服务器代码中,根据步骤3的结果呈现不同的HTML。仅当当前访问是服务器重定向的结果时,才显示成功消息。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56436465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档