当前位置: 首页 > 面试题库 >

防止“后退”按钮显示POST确认警报

丌官凯康
2023-03-14
问题内容

我有一个向网页提供一长串参数的应用程序,因此我必须使用POST而不是GET。问题是当页面显示并用户单击“后退”按钮时,Firefox会显示警告:

要显示此页面,Firefox必须发送将重复之前执行的任何操作(例如搜索或订单确认)的信息。

由于应用程序的构建方式使“返回”是一种非常常见的操作,因此对于最终用户而言确实很烦人。

基本上,我想按照此页面的方式进行操作:

http://www.pikanya.net/testcache/

输入内容,提交,然后单击“上一步”按钮。没有警告,它只是返回。

谷歌搜索,我发现这可能是Firefox 3中的错误,但是我想以某种方式获得这种行为,即使他们“修复”了它。

我猜它可以与某些HTTP标头一起使用,但是到底是哪个?


问题答案:

解决方法之一是将POST重定向到重定向到GET的页面-请参阅Wikipedia上的Post / Redirect /
Get

假设您的POST是4K表单数据。大概您的服务器会对这些数据执行某些操作,而不是仅显示一次并将其丢弃,例如将其保存在数据库中。继续这样做,或者如果它是一个巨大的搜索表单,请在数据库中创建它的临时副本,该副本将在几天后或使用空间限制时基于LRU清除。现在创建可以使用GET访问的数据的表示形式。如果是临时的,请为其生成一个ID并将其用作URL;如果是永久数据集,则可能具有ID或可用于URL的名称。在最坏的情况下,像使用很小的url这样的算法会将大的URL折叠成很小的URL。重定向POST以获取数据表示。



 类似资料:
  • XML 活动 创建 已选择选项项 在getActionBar()行上获取空指针异常。setDisplayHomeAsUpEnabled(真);

  • 我正在尝试在上显示一个以将上一页/活动移动到主页面(第一次打开)。我做不到。 我的代码。 代码在中。

  • 在写这个之前,我已经经历了很多stackoverflow问题。我对这个家伙的碎片背栈很困惑。 我在一个活动中的同一个容器上添加了三个片段 现在我想要的是,当用户按下片段3上的后退按钮时,它应该出现在第一个片段上,所以我已经覆盖了onBackPressed()方法。 但屏幕上什么也没发生,它让片段3继续运行。 更新 任何实现这一点的解决方案。

  • 我正在使用android导航组件库。我用导航图设置了两个片段。我想在我的片段内按下后退按钮时做一些额外的动作。 我使用这段代码来处理工具栏上的按钮点击,但我也想处理后退按钮按下。我该怎么做?

  • 我试图用这段代码来显示我的个人档案活动: 当我点击Profile菜单项时,我可以看到我的ProfileActivity,但我的ActionBar上没有任何back按钮来返回我以前的活动。 那么,我如何显示一些后退按钮?我的代码是否正确以显示菜单中的活动?

  • 我正在开发一个Android应用程序,我设计了一个弹出窗口,通过替换活动中的软键盘来显示一些视图。popupWindow包含一个searchView。当我点击一个按钮时,它显示弹出窗口,软键盘被隐藏。现在,当popupWindow中的searchView获得焦点时,我调用该方法: PopupWindow.set聚焦(真) 显示键盘,以便用户可以在searchView中开始键入。当searchVie