我正在努力理解使用 Coldfusion8 的服务器端事物,到目前为止只做客户端的事情。
假设我有一个基本的 Coldfusion 页面布局,如下所示:
<script type="text/javascript">
function foo() { docoument.myForm.submit(); }
</script>
<cfif isdefined("sendMyForm")>
... running coldfusion...
... displaying something...
</cfelse>
<form action="nextPage.html" method="post" name="myForm">
<input type="text" name="formContains" />
<input type="hidden" name="sendMyForm" value="yup" />
<input type="button" name="sender" value="send" OnClick="foo() />
</form>
</cfif>
问题:
当我提交表单时,服务器端实际发生了什么?页面是否正在“重新加载”并且cfif导致coldfusion运行并显示结果?只是寻找一些基本信息,以便我了解发生了什么。
感谢您的提示!
最佳答案
将 CF 和大多数 Web 服务器/系统视为接受输入(url/get、form/post、cookie 等)并返回输出(html、json、文本等)。这个循环通常会重复。有人在浏览器中输入网址,请求发送到服务器,页面返回表单。用户点击提交,请求发送到服务器,返回结果页面。用户点击链接,请求发送到服务器......如此反复。
由于 if 语句的组织方式,您需要将表单操作提交回自身。如果在 form.cfm 文件中,则操作应为 form.cfm。除非您在网络服务器中设置特定映射以使 CF 处理 html 文件,否则该文件需要为 .cfm
您提到将操作属性全部保留在一起会将表单提交回同一页面,但我不相信这在每个浏览器中都有效。
使用表单 method="post"也更常见/更安全,然后检查
structkeyexists(form, "fieldname")
关于javascript - Coldfusion 中提交的表单会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363049/