跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 发现一个表单提交的奇怪现象。
未分類
10 11 月 2020

发现一个表单提交的奇怪现象。

发现一个表单提交的奇怪现象。

資深大佬 : dujiangbo 7

发现一个有意思的现象:
Php 写的一个函数,内容是一个表单页面,和获取表单提交数据后的处理,表单没有指定 action,默认应该由当前 URL 处理,也就是说还是由这个函数处理,确实这个函数拿到了表单提交的数据并进行了处理,处理数据的程序在函数最前面,处理完成后就中止程序,表单在后面,但数据处理完成,程序中止后表单任然显示并可以再次提交数据,也就是说表单无视中止程序仍然显示,这是为什么?表单提交后不是应该重新载入页面吗?
大佬有話說 (18)

  • 資深大佬 : Curtion

    可能是浏览器缓存

  • 資深大佬 : GM

    吐槽无力。。。。。你到底在说什么啊?

  • 主 資深大佬 : dujiangbo

    @GM
    Function
    If 获得表单数据
    数据处理程序
    Die()
    表单页面

    就是这么个函数。

  • 資深大佬 : zhengwenk

    页面重新载入后 仍然显示表单并可以提交数据,这有什么问题,真不是很正常么?

  • 主 資深大佬 : dujiangbo

    @zhengwenk 函数中数据处理模块结束后就 die 了啊,后面的表单应该不显示啊。

  • 資深大佬 : wangritian

    建议写一份演示代码

  • 主 資深大佬 : dujiangbo

    我明白了,数据处理程序没有任何 HTML 内容,是从数据库查询推送浏览器下载的动作,然后就 die 了,是不是因为浏览器没有接到 HTML 内容所以不刷新页面?

  • 資深大佬 : gogo789

    你 form 表单怎么提交的,同步还是异步???

  • 資深大佬 : ben1024

    _blank ?

  • 主 資深大佬 : dujiangbo

    @gogo789 没用 Ajax,就是直接 submit 提交。

  • 主 資深大佬 : dujiangbo

    @ben1024 没有设置 target 。

  • 資深大佬 : ben1024

    @dujiangbo
    装个 debug 看下,
    如果这个场景估计有提前 echo,或者 ob_push,一类的输出在终止之前

  • 資深大佬 : suke971219

    if req.method==”post” {} else {} ,php 应该可以做到这样

  • 資深大佬 : lijialong1313

    会不会因为你提交表单的方法不对(例如用了 get ),浏览器瞎给你缓存了

  • 資深大佬 : jowan

    因为你处理完数据返回给浏览器的响应头不是 text/html
    也就是 Content-Type 肯定是 application/download 之类的
    如果服务端响应没问题 浏览器当然不会刷新页面 会直接弹出下载提示
    另外你的表达能力。。

  • 資深大佬 : joychen666

    用 Chrome 开发者工具,看一下表单提交的 Request 和 Response 内容, 应该就知道是什么情况了。

  • 資深大佬 : DOLLOR

    提交后最好 302 或 303 跳到其他页面去,再在新的页面通过前端 location.href 跳回 form 页面,就能强制清空 input 里的内容了。

  • 主 資深大佬 : dujiangbo

    @jowan 就是这个原因,服务器推送的是数据。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具