前面说过对于数据的处理有两种方式,一种是get
,一种是post
,这两种方式既可以提交数据又可以发送数据,所以不能以字面单词的意思认为get
是获取数据,而post
是发送数据,虽然刚学习php时我也这样以为,但事实不是这样,所以要分清楚两者的区别。
get和post的区别
- get方式提交数据的时候对于数据的保密性不太好,因为get方式提交数据的时候是通过url链接?后面的参数来提交给后台的,都可以直接在链接里看到,所以不太安全。
- 还有就是get数据有限制
- post相对而言安全一点,需要选择https协议
- post数据是在http请求头的主体部分发送的
- post数据理论上没有限制
数据提交方式:
1.通过url链接提交数据,利用url链接?后面的参数
"http://localhost/PHP/PHP2/lesson01.php?pic="+inp.value
,所以可以在js的script标签中使用此语句,后面的参数定义一个变量可以把数据传过去,这种方式是get
方式。
2.form
表单方式提交
这种方式可以实现post
和get
两种数据传送方式,可以跨域提交数据,使用iframe
的方式实现局部刷新。但是iframe
不支持跨域。
所以上面的语句要想在后台获得input
中的数据就在php
中用$_POST['name']
来获取,如果是get
就用$_GET['name']
。
3.通过script
标签的src
属性
只能实现
get
方式
可以独立地实现局部刷新
支持跨域json
,json串
,JSON.parse()
把json串
转换成json
对象。jsonp
,一种跨域请求方式,向服务器请求的同时提供给后台一个回调函数名,服务器返回数据时将数据包裹在函数名中,一起返回,由于我们使用的是script
标签,浏览器端一旦接收到返回数据,立即执行该函数。但是jsonp
只支持get
方式提交。
4.XHR
小黄人对象
|
|
关于xhr
的属性,readyState
,即XHR
的执行状态,0--初始状态
、1--创建链接
、2--发送数据
、3--服务器开始返回数据
、4--数据接收完毕
。
关于xhr
的事件,onreadyStateChange()
当小黄人状态发生变化的时候会执行。onload()
接收数据完毕之后才执行。
5.$ajax
封装
|
|
以上就是所有的数据提交和数据获取方式,是前后台交互的关键所在。