一 概念

Ajax技术能够实现页面以异步方式从服务器获取信息,无需刷新页面

Ajax的核心技术是XMLHttpRequest对象(XHR)

异步实际就是请求数据的代码不会阻塞页面向下执行

二 原生Ajax

1 创建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提交之前添加模拟表单提交的代码

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

4 判断响应

异步请求

1绑定监听事件onreadystatechange

2获取响应状态码readyState, 判断接收是否完成

readyState为4表示接收结束

3判断响应结果

xhr.status    200为请求成功

404为请求路径不存在

500为服务器内部异常

4获取响应数据

xhr.responseText  服务器响应的数据(可能为各种格式)

xhr.onreadystatechange = function(){

   if (xhr.readyState == 4) {

      if (xhr.status == 200) {

          console.log(xhr.responseText);

      }

   }

}

同步请求不需要监听与状态码

三 原生Ajax封装

1 定义调用对象

请求类型 请求地址 是否异步 上传信息 数据处理方法

var u1 = {

method:"GET",

url:"js/data.json?key=a&uname=zhangsan&upwd=12345",

async:true,

data:{

uname:"zhangsan",

upwd:"123456"

},

success:function(result){

console.log(result);

}

};

注意:      数据处理方法中的参数result表示ajax回调的结果数据.

数据处理方法中执行结果数据的处理.

2 封装体

A 创建XMLHttpRequest核心对象

代码:

var xhr = new XMLHttpRequest();

B 格式化参数

本过程中取出调用对象的各参数,赋值到变量中.主要内容是拼接与遍历

请求类型(转大写)

请求地址(get请求中进行字符拼接)

是否异步

上传信息(转为字符串)

数据处理方法

var param = obj.data;

// 将json对象格式的参数转换为指定格式的字符串

uname=zhangsan&upwd=12345

var paramArray = [];

// 遍历参数对象

for (var key in param) {

// 拼接参数名和参数值

var pa = key+"="+param[key];

// 将数据追加到数组中

paramArray.push(pa);

}

// 将数组通过指定符号转换成字符串

var p = paramArray.join("&");

// 得到用户请求类型

var method = obj.method.toUpperCase();

//判断请求类型,如果是GET请求,在请求地址后面拼接请求参数

if (method == "GET") {

// 判断地址中是否包含"?",如果有,则拼接时使用"&";如果没有,则使用"?"

obj.url +=(obj.url).indexOf("?") > -1  ? "&" + p:"?" + p;

}

C打开请求

xhr.open(method,obj.url,obj.async);

D请求提交

在提交前将post方式请求前添加模拟表提交

提交代码,经post中的请求内容加到提交方法中

// 如果是POST请求,则需要模拟表单提交

if (method.toUpperCase() == "POST") {

// 模拟表单提交

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

// post提交

xhr.send(p);

} else {

// get提交

xhr.send(null);

}

E 响应判断

分别对异步同步执行对应的流程

设置回调函数 调用传入的数据处理方法对服务端响应的数据进行处理

判断是否是否是异步请求

if (obj.async) { // 异步请求

// 监听readySate的值,判断响应是够完毕

xhr.onreadystatechange = function() {

// 如果完全响应,值为4

if (xhr.readyState == 4){callback();}

}

} else { // 同步请求

callback();

}

// 回调函数

function callback() {

// 判断是否响应成功  status=200

if (xhr.status == 200) {

// 得到相应数据,并回调数据给调用者

var result = xhr.responseText;

obj.success(result);

}

}

三 通过JQuery使用Ajax

JQuery中封装了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值

$.get("js/data.json",{},function(data){console.log(data);});

post调用

$.post(参数)   通过逗号分隔 省略key值

$.post("js/data.json",{},function(data){console.log(data);});

getJSON调用       属性通过逗号分隔 省略key值

$.getJSON("js/data.json",{},function(data){console.log(data);});

 

跨域调用

    两个域名,从一个域名访问另一个的域名 需要通过jsonp方式发送请求

条件    1远程接口支持跨域访问

2 ajax中设置dataType:"jsonp" [jsonp:’callback’]

$.ajax({

type:"get",

url:"http://iservice.itshsxt.com/restaurant/find",

data:{ },

dataType:"jsonp",

success:function(result){console.log(result);}

});

三 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下的直接目录)

AJAX技术初级探索的更多相关文章

  1. 使用ajax技术实现txt弹出在页面上

    使用ajax技术实现txt弹出在页面上   使用ajax技术实现点击按钮,将TXT文本里的内容通过弹出框显示到页面上 /*事件会在页面加载完成后触发.*/ <script> window. ...

  2. 《所用到的AJAX技术基础》

    来自百度网页,w3cshool网页:AJAX = Asychronous JavaScript and XML,翻译成中文为:异步的JavaScript XML. 异步的意思就是不重新加载整个页面,后 ...

  3. Ajax技术

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  4. Ajax技术详解

    Ajax技术:Ajax描述了一种主要使用脚本(JS)操纵HTTP的web应用架构,它的主要特点是使用脚本操纵HTTP和web服务器进行数据交换,不会导致页面重载.Ajax的核心是JS的XMLHttpR ...

  5. Java之Ajax技术

    ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...

  6. 在 PHP 中结合 Ajax 技术进行图片上传

    前面几则日志中讲述了在 PHP 中上传文件,相信大家对 PHP 中如何进行文件上传已经初步掌握.本文来继续探讨在 PHP 中上传文件的技术,不同的是,本次上传将仅限于图片文件的上传,并且将采用 Aja ...

  7. ajax 技术和原理分析

    ajax所包含的技术 大家都知道ajax并非一种新的技术,而是几种原有技术的结合体.它由下列技术组合而成. 1.使用CSS和XHTML来表示. 2. 使用DOM模型来交互和动态显示. 3.使用XMLH ...

  8. Ajax 技术一

    一.Ajax概述 1.历史起源 1998年,微软公司Outlook Web Access研发小组在当时的IE浏览器中集成了一种技术,可以在客户端无刷新的前提下向服务器端发送Http请求,这门技术称之为 ...

  9. AJAX技术的核心

    //创建一个XMLHttpRequest对象 ,利用此对象与服务器进行通信 是AJAX技术的核心 /** * 获取XmlHttpRequest对象 */ function getXMLHttpRequ ...

随机推荐

  1. 2019-08-07 纪中NOIP模拟B组

    T1 [JZOJ1385] 直角三角形 题目描述 二维平面坐标系中有N个位置不同的点. 从N个点选择3个点,问有多少选法使得这3个点形成直角三角形. 数据范围 $3 \leq N \leq 1500$ ...

  2. mysql 对数据的自增ID重新进行排序

    创建表格时添加: create table table1(id int auto_increment primary key,...) 创建表格后添加: 删除原有主键: ALTER TABLE `ta ...

  3. CSS的字体样式

    CSS的字体样式 1. span标签(约定俗成:重要的东西用它括起来) 首选介绍一个约定俗成的东西:span标签.一般将想要突出的东西,比较重要的东西,用span标签括起来. 比如,”学习Java“这 ...

  4. Freezable 对象概述 | Microsoft Docs

    原文:Freezable 对象概述 | Microsoft Docs Freezable 对象概述Freezable Objects Overview 2017/03/30 本文内容 什么是可冻结的? ...

  5. echats--visualmap

    visualmap 既图片左下角的筛选按钮 1.对颜色的区分 visualMap: [ { top: 20, left: 0, right: null, // 设置文本为红色 textStyle: { ...

  6. ubuntu19.04 配置远程连接ssh

    安装ssh-server sudo apt install openssh-server 参照:https://baijiahao.baidu.com/s?id=1631505486531979316 ...

  7. 己亥清爽恢复系列之数据文件4篇:DROP表后如何恢复(非闪回技术)

    己亥清爽系列说明:清爽系列是作为恢复系列的基础篇,基于FS(File System)文件系统的手工还原恢复,也叫基于用户管理的还原恢复,来自于博客园AskScuti. 实验说明:你不小心Drop掉了一 ...

  8. python3练习100题——020

    原题链接:http://www.runoob.com/python/python-exercise-example20.html 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下 ...

  9. DBContext基础查询

    https://www.cnblogs.com/gosky/p/5752001.html 遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { ...

  10. Microsoft 常用下载链接

    申明:本文所有下载链接皆来自微软官网,推荐使用迅雷下载 推荐:Windows10安装时选择专业版,Office用2016版,其他随意,具体用哪个版本根据配置和需求 Windows系统下载 Window ...