json方法处理后端数据有
1/ JSON.stringify():将对象、数组或json转为字符串
2/ JSON.parse():将字符串转化对象、数组或json,传统用的是eval()方法转化
2个方法ie6与ie7不支持,引用JSON.js就可支持了(json.org/javascript/json2.js)
json_encode()为后端方法,通常转换数据编码格式
不支持中文的要用编码方法encodeURI()
HTTP状态码(5种,以0-5开头,代表不同类型状态,百度百科详细参照)
ajax发送请求后浏览器响应的5种状态:
0 ->(未初始化)还没有调用open()方法
1 ->(载入)已调用send()方法,正在发送请求
2 ->(载入完成)send()方法完成,已收到全部响应内容
3 ->(解析)正在解析响应内容
4 ->(完成)响应内容解析完成,可以在客户端调用了
xhr.readyState放置不同位置可检测状态
接口理解:带有api的复杂数据url地址或后台人员编写的复杂程序功能
ajax调用接口:ajax函数( 封装后的函数 )的data参数,url?后面的参数,用&连接,注意data下属性代表的各种含义
前端人员利用ajax调用接口时在前台展示数据列表的方法:1/innerHTML累加;2/DOM方法创建标签
ajax调试:审查元素 -> Network -> XHR -> Preview( chrome浏览器为佳 )
ajax跨域限制( 不能在同一域名localhost下请求另一域名下的资源文件 )解决办法:
1/ flash中的xml文件
2/ 创建服务器端文件请求
3/ jsonP方式
jsonP方式过程
fn(data),用函数包住,data内容不受后缀名影响,取决实际文件内容
dom方式动态创建script标签,src后跟上域名
jsonp跨域应用:如仿淘宝或百度等搜索的数据智能提示,站内搜索数据,QQ关联登录等
乱码产生的原因:1/ 字符集编码不统一 2/ 中文的编码和解码问题( encodeURI和decodeURI )
get和post方式:
1/特点
get( 存储容量小,不安全,有缓存,存在中文编码问题,url?后面不带参数请求不了数据内容 )
post( 存储容量大,相对安全,没缓存,不存在中文编码问题,数据放在send()方法里面作为参数传递 )
2/get的解决方案
缓存清除办法:url?后面跟上随时可变的东西,如时间戳
编码问题用encodeURI解决
3/何时使用
get一般在请求一串数据列表
post一般在注册、登录、验证、上传等
ajax的各种应用:瀑布流展示、留言本、即时聊天室、注册登录、表单验证、文件上传、表单发送、分页跳转方式、网页载入进度加载,加载更多等等。