欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试 | Ajax---05.Ajax的get与post

程序员文章站 2022-04-15 17:47:39
...

get方式的问题:
如何缓存? 以当前访问地址进行缓存

解决:(不一样的地址)
1.缓存:在 url? 后面连接一个随机数,时间戳(记住:若有数据在url?后面,要加上&)
eg: oAjx.open('get','xx.txt?username=Tom&age=30&t=' + new Date().getTime(),true);
修改:(去掉't=')如果后端接收一个变量,它的名字也为t的话,会造成冲突,可能覆盖。
eg: oAjx.open('get','xx.txt?username=Tom&age=30&' + new Date().getTime(),true);

乱码问题:编码encodeURI
eg: oAjx.open('get','xx.txt?username='+encodeURI(习大大)+'&age=30&' + new Date().getTime(),true);

post方式的问题:
(1.post没有缓存问题,它是提交数据
2.post方式无需编码)
post方式,数据放在send()里面作为参数传递。

oAjx.send('username=Tom&age=30');
在发送数据的时候,oAjx是没有默认值的,oAjx没有默认值告诉后端提交的数据是文本的
解决:(手动告诉后端)设置请求头,告诉后端,发送的文档的类型是什么类型
    告诉后端提交的数据是经过xx编码的,让后端解析。

//声明发送的数据类型(告诉后端发送数据的类型)
oAjx.setRequsetHeader('content-type','application/x-www=form-urlencode');
//发送
oAjx.send('username=Tom&age=30');

//get方式是保密性差,它的安全性和post一样,因为get是浏览器要传递的数据附加在URL上传给服务器,这是保密性差,
//可以利用浏览器上的通信组件看到他们的数据

总结
get方式与post方式的区别:
get:1.保密性差。
2.通过网址传递数据
3.容量小
4.有缓存(get是获取数据)
5.碰到汉子需要编码
post:1.安全性相对较好
2.http(请求头)
3.容量大(一帮2G)
4.无缓存(post是提交数据,向服务器传递信息)
5.无需编码