AJAX技术初级探索
一 概念Ajax技术能够实现页面以异步方式从服务器获取信息,无需刷新页面 Ajax的核心技术是XMLHttpRequest对象(XHR) 异步实际就是请求数据的代码不会阻塞页面向下执行 二 原生Ajax1 创建XMR对象 ??? var xhr=new XLMHttpRequest(); 2 打开请求|准备请求 ??? xhr.open(参数) ????? 参数分别为:? 请求类型?? get(将内容拼接在请求地址中) post(非地址传输) 请求路径?? js/data.json?? 若是get请求在路径之后通过?拼接参数,参数以&连接 是否异步?? Boolean??? true为异步 false为同步 默认ture为异步执行 3 发送请求 ??? xhr.send();??? send中的传递到后台的数据 ?????????? get请求 为null(请求参数在请求地址后面) ?????????? post请求 可设传递参数,若无为null? 参数格式为” uname=zhangsan&upwd=123” ??? 注意:在post提交之前添加模拟表单提交的代码
4 判断响应 ??? 异步请求 ?????? 1绑定监听事件onreadystatechange 2获取响应状态码readyState, 判断接收是否完成 readyState为4表示接收结束 ?????? 3判断响应结果 ?????????? xhr.status??? 200为请求成功 ? 404为请求路径不存在 500为服务器内部异常? ?????? 4获取响应数据 ?????????? xhr.responseText? 服务器响应的数据(可能为各种格式)
同步请求不需要监听与状态码 三 原生Ajax封装1 定义调用对象 ?????? 请求类型 请求地址 是否异步 上传信息 数据处理方法
?????? 注意:????? 数据处理方法中的参数result表示ajax回调的结果数据. 数据处理方法中执行结果数据的处理. 2 封装体 ?????? A 创建XMLHttpRequest核心对象 ?????? 代码:
?????? B 格式化参数 ????????????? 本过程中取出调用对象的各参数,赋值到变量中.主要内容是拼接与遍历 请求类型(转大写) 请求地址(get请求中进行字符拼接) 是否异步 上传信息(转为字符串) 数据处理方法
?????? C打开请求???
?????? D请求提交 ????????????? 在提交前将post方式请求前添加模拟表提交 ????????????? 提交代码,经post中的请求内容加到提交方法中
?????? ?E 响应判断 ????????????? 分别对异步同步执行对应的流程 ????????????? 设置回调函数 调用传入的数据处理方法对服务端响应的数据进行处理
三 通过JQuery使用AjaxJQuery中封装了Ajax 调用格式 普通调用 ??? $.ajax(参数);? 参数为json对象 ?????? json对象的参数包括 ??? {?? type: "get",???????????????? 或者”post” ?????? url: "js/data.json",????????? 目标地址 ?????? data:{ },?????????????????? 传入的数据 ?????? dataType: "json"??????????????? 服务器返回的数据类型 ?????? success:function(result){对result的操作代码} }?? 以下为具体内容 type:请求方式 GET/POST url:请求地址 url async:是否异步,默认是 true 表示异步 data:发送到服务器的数据 dataType:预期服务器返回的数据类型 contentType:设置请求头 success:请求成功时调用此函数 error:请求失败时调用此函数 get调用 ??? $.get(参数)??? 通过逗号分隔 省略key值
post调用 ??? $.post(参数)?? 通过逗号分隔 省略key值
getJSON调用?????? 属性通过逗号分隔 省略key值
? 跨域调用 ??? 两个域名,从一个域名访问另一个的域名 需要通过jsonp方式发送请求 ??? 条件 ?? 1远程接口支持跨域访问 2 ajax中设置dataType:"jsonp" [jsonp:’callback’]
三 eclipse中web项目的设置调出server窗口 ??? window菜单->show view ->other ->查找servers 选中打开窗口 创建server ??? 右击new ->server -> 选中Apache下的Tomcat版本 next-> 选择tomcat目录(选bin的父目录)? 选中jdk next ->完成 启动tomcat测试 注意:Tomcat的默认接口8080,与oracle冲突,需要手动关oracle服务或改端口 ? 创建web项目 文档框new选择other.查找web 选择Dynamic Web Project? 设项目名一路确认 在tomcat上右击选择(add and move) 在左右选框中移动项目 ? web项目中webContent下创建页面和资源文件 webContent与src都相当于根目录 ??? 访问地址 localhost:端口号/项目名/(webContent下的直接目录) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |