关于前后端联调(表单提交及处理)的一个小问题

来源:互联网 发布:淘宝客户分析 编辑:程序博客网 时间:2024/06/05 11:05

解决本地前后端联调的一个小问题

1:前面遇到的问题是:在html文件中,我们使用表单form来进行网站数据的提交,具体代码为:

<form action="search.php" id="searchForm" method="post">                    <input type="text" id="searchtext" placeholder="请输入关键词" name="searchtext">                    <input type="submit" id="submit" value="搜索" onclick="index()" name="submitbutton"></form>

但是,之前遇到了一个问题:每次点击form中的submit按钮,表单数据提交后,浏览器显示的是相应的php文件的下载,也就是浏览器无法完成php文件的解析,所以只能进行php文件的下载(采用的是360浏览器进行测试)。
这里体现的问题是:表单没有把数据传送到服务器端,让服务器来调用form表单中action指向的php文件,然后处理数据,返回html流,再由浏览器解析显示。
再次考虑动态页面网页访问机制:
1:前端显示,用户交互产生动态数据,产生请求。
2:浏览器将请求发送至服务器{可以利用form表单进行数据提交,GET或POST方式,或者Ajax(常用于网页局部刷新)等}。
3:服务器调用服务器端脚本语言对数据进行处理,同时可能需要操作数据库。
4:服务器端脚本语言处理好请求后,交由服务器,由服务器以html流的形式返回浏览器。
5:浏览器解析返回的html流,并进行显示。
在本地进行前后端联调的时候,之所以出现前面的问题,主要问题就是表单中只是说明了(action属性)提交给php文件,并没有告诉浏览器,php文件在哪里,所以表单数据提交结果要么是:无法显示页面,要么是找到php文件,然后浏览器提示下载PHP文件,如果开启了php文件编辑器,使用google进行测试的话,还会出现直接在php编辑器中打开php文件的情况。
所以综上,出现上述问题的主要原因就是出现在form标签中的action属性没有指向服务器。
解决方法:

<form  action="http://localhost/search.php" id="searchForm" method="post">                    <input type="text" id="searchtext" placeholder="请输入关键词" name="searchtext">                    <input type="submit" id="submit" value="搜索" onclick="index()" name="submitbutton"></form>

所以还是对html 的语法掌握有问题,因为form标签的action属性值应该是绝对url值。URL(Uniform Resource Locator,统一资源定位符)。绝对URL值应该是:
协议://文件所在的服务器的名称或IP地址/文件绝对路径
之所以在表单的action属性中,需要使用绝对URL作为action属性的值,是因为在本次设计中需要使用form来向网站后端提交数据,需要使用相应的php文件来对数据进行处理,需要使用绝对URL来准确指向php文件(需要找到可以打开php文件的东西,浏览器是做不了这件事的,服务器是可以调用PHP文件的),可以认为浏览器先要将数据提交到本地服务器(localhost)中(先要打开wampserver哦),再由wampserver调用php文件,处理好之后,再返回浏览器进行显示。

0 0
原创粉丝点击