js ajax 数据获取
在js中应用ajax 获取数据的方法,也写一个出来供复习所用
1.建议一个user.json 文件如下,保存名字为 user.json
{ "name": "huanying2015", "pwd": "123456", "sex": "男" }
2.1 创建一个ajax 请求,用于获取 user.json 文件的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload = function() {
var Obtn = document.querySelector('input');
Obtn.onclick = function() {
// 创建一个XMLHttpRequest 对象,这是ajax请求的核心;这里采用一个三元选择,是为了兼容ie6/ie5
// 在ie6/ie5中,使用new ActiveXObject('Microsoft.XMLHTTP')创建XMLHttpRequest对象
var xhr = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP');
// 获取ajax请求地址,在地址后面加入一个随机数,是为了解决ie浏览器的识别问题,ie浏览器相同的请求地址,不会再次进行请求,
// 加入一个随机数之后,再次请求时,ie会解析为不同的地址
var url = 'user.json?tid=' + Math.random();
// 对请求的状态进行监控
// 0 -- 未初始化,确认XMLHttpRequest 对象已经创建,并为调用open()方法初始化做准备
// 1-- 载入,对XMLHttpRequest 对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置,并调用send()方法向服务器端发送请求。1表示正在向服务端发送请求
// 2--载入完成,收到服务器的相应数据,但是只是原始数据,并不能直接在客户端使用。值为2表示已经接收完全部相应数据,并为下一阶段解析做好准备
// 3--交互数据,解析相应数据,即根据服务器端相应头部返回的MIME类型把数据转换成能通过 responseBody,responseText,responseXML属性存取的格式,为在客户端调用做好准备。
// 值为3表示正在解析数据
// 4--完成, 此阶段确认全部数据都已经解析为可以在客户端使用的数据, 解析已经完成。 值为4表示解析完成, 可以通过XMLHttpRequest对象对应的属性获取数据
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
// 将XMLHttpRequest返回的数据转换成为json格式(因为返回来的是一个字符串)
var obj = JSON.parse(xhr.responseText);
var str = '';
// 遍历obj
for (var key in obj) {
str += "<p>" + key + "," + obj[key] + "</p>";
}
// 输出obj
document.querySelector('.box').innerHTML = str;
}
}
xhr.open('GET', url, true);
xhr.send(null);
}
}
</script>
</head>
<body>
<input type='button' value="ajax请求调用数据">
<div class='box'></div>
</body>
</html>
运行结果:(这里html文件名为ajax100.html,在这里直接双击打开ajax100.html文件是不能获取user.json内容的,必须要在浏览器输入地址,打开服务器才能获取user.json文件内容)

以上就是ajax 从user.json获取的数据
备注:以上是使用GET方式发送请求,如果使用POST方式,则在send()方法里添加要发送的参数,并且要使用 setRequestHeader() 来添加 HTTP 头
例如:
xhr.open("POST",url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("name=huanying2015&pwd=123456");
2.2 使用jquery 获取ajax数据
2.2.1 使用 jquery get 方式获取数据
建立两个文件:分别命名为 success.html 和 error.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js"></script>
<script>
$(function() {
$('#login').on('click', function() {
var userName = $('#user').val();
var pwd = $('#pwd').val();
$.get('user.json', {}, function(obj) {
if (userName == obj['name'] && pwd == obj['pwd']) {
location.href = "success.html";
} else {
location.href = "error.html";
}
});
});
});
</script>
</head>
<body>
用户名: <input type="text" name="user" id="user"> <br> 密码: <input type="password" name="pwd" id="pwd"> <br>
<input type="button" value="登录" id="login">
</body>
</html>
2.2.2 使用 jquery post 方式获取数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js"></script>
<script>
$(function() {
$('#login').on('click', function() {
var userName = $('#user').val();
var pwd = $('#pwd').val();
$.post('user.json', {}, function(obj) {
if (userName == obj['name'] && pwd == obj['pwd']) {
location.href = "success.html";
} else {
location.href = "error.html";
}
});
});
});
</script>
</head>
<body>
用户名: <input type="text" name="user" id="user"> <br> 密码: <input type="password" name="pwd" id="pwd"> <br>
<input type="button" value="登录" id="login">
</body>
</html>
2.2.3 使用 jquery ajax 方式获取数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js"></script>
<script>
$(function() {
$('#login').on('click', function() {
var userName = $('#user').val();
var pwd = $('#pwd').val();
$.ajax({
url: 'user.json?tid=' + Math.random(),
data: {},
type: 'get',
dataType: 'json',
success: function(obj) {
if (userName == obj['name'] && pwd == obj['pwd']) {
location.href = 'success.html';
} else {
location.href = 'error.html';
};
},
error: function() {
console.log('ajax请求失败!');
}
});
});
});
</script>
</head>
<body>
用户名: <input type="text" name="user" id="user"> <br> 密码: <input type="password" name="pwd" id="pwd"> <br>
<input type="button" value="登录" id="login">
</body>
</html>
get方式,post方式,ajax方式,运行结果都是一样的,如下:

js ajax 数据获取的更多相关文章
- js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
今天遇到一个问题找了很久发现: 使用js ajax post提交 ie和火狐.谷歌提交的编码不一致,导致中文乱码 //http://www.cnblogs.com/QGC88 $.ajax({ url ...
- JavaScript学习总结【12】、JS AJAX应用
1.AJAX 简介 AJAX(音译为:阿贾克斯) = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技 ...
- 简单的前端js+ajax 购物车框架(入门篇)
其实,一直想把自己写的一些js给总结下,也许是能力有限不能把它完美结合起来.只能自己默默的看着哪些代码,无能为力. 今天在公司实在没有事做,突然就想到写下商城的购物车的前端框架,当然我这里只有购物车的 ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- js+ajax编码三级联动
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> ...
- 注册页面手机验证码无跳转接收[html+js+ajax+php]
[学习笔记] 来源:注册时需要使用短信验证码,但是注册的时候,点击接收验证码时,会产生跳转(尼玛,这不是我想要的啊!o(╥﹏╥)o) 查询资料和看书之后,知道使用js+ajax可以实现,就从网上找了一 ...
- js ajax请求传token
js ajax请求传token 方法一: headers: { Authorization: "BasicAuth " + token } 方法二: beforeSend: fu ...
- js ajax设置和获取自定义header信息的方法总结
目录 1.js ajax 设置自定义header 1.1 方法一: 1.2 方法二: 2.js ajax 获取请求返回的response的header信息 3.js ajax 跨域请求的情况下获取自定 ...
- 原生js ajax与jquery ajax的区别
原生js ajax的调用: ajax({ type : "get", url : "02_ajax_get.txt", data : { "userN ...
随机推荐
- 廖雪峰Java3异常处理-1错误处理-1Java的异常
1.计算机运行中的错误 在计算机程序运行的过程中,错误总会出现,不可避免的 用户输入错误 读写文件错误 网络错误.内存耗尽.无法连接打印机不可 String s = "abc"; ...
- etcd集群部署与遇到的坑(转)
原文 https://www.cnblogs.com/breg/p/5728237.html etcd集群部署与遇到的坑 在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑.今天记录一 ...
- Quidway S系列交换机
一. 华为交换机设备,以Quidway S系列命名,广泛适用于企业网.园区网和运营网络.Quidway S系列交换机包括: 接入层交换机 汇聚层交换机 核心层交换机 1.接入层交换机 包含两个系列: ...
- python面向对象 : 抽象类(接口类),多态,封装(私有制封装)
一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...
- css一般性
1. 总差那么几像素!line-height:100%;2. 数据图片,产品图片用img 小图标,logo,修饰网站的图片 用背景3.文字居中 line-height /text-align:cent ...
- Windows使用Idea编译spark源码
1. 环境准备 JDK1.8 Scala2.11.8 Maven 3.3+ IDEA with scala plugin 2. 下载spark源码 下载地址 https://archive.apach ...
- (转)C#操作Word文档
原文1地址:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 原文2地址: http://www.cnblogs.com ...
- 图片Alpha预乘的作用[转]
Premultiplied Alpha 这个概念做游戏开发的人都不会不知道.Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alp ...
- CF 966E May Holidays
/* 考虑对于询问分块, 每根号n个询问做一次 考虑一次询问, 我们建立出虚树来每条链上的更改一定是一样的, 然后会有根号条链 对于每条链上的点按照w基数排序并且合并相同, 然后每次更改 就是一个指针 ...
- java的list遍历
for(String str : list) {//增强for循环,其内部实质上还是调用了迭代器遍历方式,这种循环方式还有其他限制,不建议使用. System.out.println(str); } ...