首先我们要清楚ajax是什么?ajax是前后台数据交互依赖的技术,其优点是可以不刷新网页而更新局部内容。那么ajax如何书写呢?
首先ajax的本质是xmlHttpRequest对象;既然是对象那么通过new生成是肯定的
var ajax=new xmlHttpRequest() 在控制台输出ajax 对象 会得到 很多属性 其中
readyState 请求的五个阶段 0 1 2 3 4
responseText 返回的文件内容
Status 状态吗 返回的状态信息
200 代表加载成功
3xxx代表禁用
404 文件没有找到
5xx 服务器问题
原生ajax书写:
var ajax=new XMLHttpRequest
ajax.open(get,“路径”,true)
ajax.send()
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
fn(ajax.responseText)
}
}
}
封装成插件后:
function ajax(methods,url,reval,fn){ //methods是传输数据的方法 url是数据的路径 reval 是是否异步一般为true fn为后台数据加载成功后执行的函数。
var ajax=new XMLHttpRequest
ajax.open(methods,url,reval)
ajax.send()
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
fn(ajax.responseText)
}
}
}
}
methods:get 看得见,传送数据小,通过网络地址传;post 看不见,传送数据大一些,通过http中的某个对象的一个body属性
ajax跨域
不在同一个服务器下 就是 协议 域名 端口 三者有一个不一样就是跨域
请求的地址和浏览器的地址必须在同域下,就是说协议端口域名都得一样。
1.靠标签身上的src属性解决跨域的问题,利用script标签的src属性去请求外部的数据 2.看网络地址 关键单词 cb和callback