1.post安全性更高
2.get请求的数据有限制,post没有
3.get的请求参数会在URL中显示,数据暴露容易被偷窃,post数据在请求体中,更安全
4.post需要设置请求头
---------------------------------------------------------------------------------
GET请求示例:
functiongetClick(){
var xmlHttp = window.XMLHttpRequest ?
new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
var username = document.getElementById("userName").value;
var age = document.getElementById("userAge").value;
//添加参数,以求每次访问不同的url,以避免缓存问题,如果url不更新,则每次访问都是调用缓存中的数据,而不是服务器最新数据
xmlHttp.open("get", "Server.aspx?username=" + encodeURIComponent(username)
+ "&age=" + encodeURIComponent(age) + "&random=" + Math.random());
xmlHttp.onreadystatechange =function(){
if(xmlHttp.readyState ==4&& xmlHttp.status ==200){
document.getElementById("result").innerHTML = xmlHttp.responseText;}}
//发送请求,参数为null
xmlHttp.send(null);}
Post请求示例:
functionpostClick(){
var xmlHttp = window.XMLHttpRequest ?
new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
var username = document.getElementById("userName").value;
var age = document.getElementById("userAge").value;
var data ="username=" + encodeURIComponent(username)
+ "&age=" + encodeURIComponent(age);
//不用担心缓存问题
xmlHttp.open("post", "Server.aspx", true);
//必须设置,否则服务器端收不到参数
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange =function(){
if(xmlHttp.readyState ==4&& xmlHttp.status ==200){
document.getElementById("result").innerHTML = xmlHttp.responseText;}}
//发送请求,要data数据,data放在请求体中,而不是URL
xmlHttp.send(data);}
6. call和apply的异同
1.不同点:区别在于接收参数的方式不同。call的第二个参数可以是任意的类型,而apply的第二个参数必须是数组,也可以是arguments。
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)2.相同点:call()方法和apply()方法的作用相同:改变this指向。
---------------------------------------------------------------------------------
function add(c, d){
return this.a + this.b + c + d;}
var apple =