一、基于jQuery的ajax实现(最底层方法:$.jax())
$.ajax(
url:
type:''POST“
)
$.get(url,[data],[callback],[type]) #callback是发送成功后就执行的函数,type是告诉服务器需要什么数据,type:text|html|json|script
$.post(url,[data],[callback],[type])
例子:
$.get('/jquery_get/',{name:'gavin'}) //name关键字是不加引号的
$.post('/jquery_get',{name:'kobe'},function(data,stateText,obj){
console.log(data,stateText,obj)
}) //function里的data参数是服务器端返回的数据,stateText 表示返回的状态,obj是js里的xmlHttprequest,里面包含很多数据,包含状态码,readystatus(1,2,3,4分别表示四个状态步骤)
$.getJson()就是$.get()的type定义为json
$.getScript('/static/test.js',function(){
add(2,5)
}) //前面表示js文件的位置,后面表示该js文件中的函数调用,这个表示即时加载时使用
$.ajax({
url:'',
type:'POST',
data:{},
})
例子:
$.ajax({
url:'/jquery_get/',
type:'POST',
data:{a:1,b:2},
traditional:true //默认情况下,data里只能传送字典类型,如果data中的字典里面带字典或者字典里带列表,需要使用
processData:false, //告诉后端不要使用任何编码进行处理,保持原封不动,默认是true
contentType:‘application/json’,//浏览器给服务器看的类型
dataType:"json",//后端发送给前端的类型
beforeSend:function(data){ //发送之前的操作
jqXHR.setRequestHeader(‘test’: 'haha') ;
jqXHR.testData=(a:1,b:2);
},
success: function(data){ //回调函数
data=JSON.parse(data) }类似于python的load,处理json的数据
complete:function(data){
console.log(data);
console.log(data,testData); //无论是否成功都会执行
},
error:function(data){//不success时执行
console.log(arguments) //打印错误信息
alert(data);
},
})
二、JSON
json就是js的数据表现形式
python与json对象的对应
python --> json
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null
parse()和.stringify()
parse() 用于从一个json字符串中解析出json对象,如 var str = '{"name":"yuan","age":"23"}' 结果:JSON.parse(str) ------> Object {age: "23",name: "yuan"} stringify()用于从一个json对象解析成json字符串,如 var c= {a:1,b:2} 结果: JSON.stringify(c) ------> '{"a":1,"b":2}' 注意1:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。 注意2: a={name:"yuan"}; //ok b={'name':'yuan'}; //ok c={"name":"yuan"}; //ok alert(a.name); //ok alert(a[name]); //undefined alert(a['name']) //ok