一、$.get和$.post的不同
1、get通过url提交的,post是通过http消息实体提交的
2、get提交大小限制为2kb,post不限制
3、get提交会被缓存下来,有安全隐患,post没有
4、get通过$.get,而post通过$.post获取
二、 $.get 和 $.post的几种传参方式
1、在url后面直接问号传参: test.php?age=20
2、以字符串键值对的方式传参: \'age=20\'
3、以对象键值对的方式传参: {age:20}
$.get 以上三种方式都支持,但是$.post和$.ajax只支持后2种写法
具体例子:
1、$.get(\'URL?age=20\',function(result){
alert(result)
})
2、$.get(\'URL,\'age=20\',function(result){
alert(result)
})
3、$.get(\'URL\',{age:20},function(result){
alert(result)
})
三、$.get 和 $.post方法 成功,完成请求,错误或失败的回调
$.post(\'URL\',$(\'form\').serialize()),success(function(){
alert(请求成功后);
}).complete(function({
alert(请求完成后);
}).error(function (xhr, status, info) {
if(xhr.status == 401){
//do something
}
})
四、ajax请求 成功,完成请求,错误或失败的回调
$.ajax({
type:"POST",
url:"URL",
data:$(\'form\').serialize(),
success:function(resp,status){
if(status == "success"){
//do something
}
},
error:function(xhr,errorText,errorType){
if(xhr.status == 401){
//do something
}
},
complete:function(){
//do something
}
})
注:在用ajax 提交表单的时候可以用表单序列化获取表单的传参内容,而且传参的形式是字符串键值对,并且还会对url进行编码,在data设置 $(\'form\').serialize() 即可。