一、Ajax是什么
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
二、使用步骤
1.使用get方法
代码如下(示例):
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
<script>
var qq = '1024543289';
var data = {
username: 'zhangsan',
password: '123321'
}
var qs = Qs;
var xhr = new XMLHttpRequest();
xhr.open('get','https://api.muxiaoguo.cn/api/QqInfo?' + qs.stringify(data))
xhr.send();
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200){
console.log(xhr.response);
}
}
</script>
2.使用post方法
代码如下(示例):
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
<script>
var data = {
qq: '1024543289'
}
var qs = Qs;
var xhr = new XMLHttpRequest();
xhr.open('post','https://api.muxiaoguo.cn/api/QqInfo')
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
xhr.send(qs.stringify(data));
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200){
console.log(xhr.response);
}
}
</script>
3.封装ajax请求后再调用
代码如下(示例):
var qs = Qs;
function get(url,data,success,error,token) {
var xhr = new XMLHttpRequest();
if(data) {
xhr.open('get',url + '?' + qs.stringify(data))
} else {
xhr.open('get', url)
}
if(token) {
xhr.setRequestHeader('Authorization',token)
}
xhr.send()
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200){
success(xhr.response)
} else if(xhr.readyState === 4 && xhr.status !== 200){
error(xhr.response)
}
}
}
function post(url,data,dataType,success,error,token) {
var xhr = new XMLHttpRequest();
xhr.open('post',url)
xhr.setRequestHeader('Content-Type',dataType)
if(token) {
xhr.setRequestHeader('Authorization',token)
}
xhr.send(data)
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
success(xhr.response)
} else if(xhr.readyState === 4 && xhr.status !== 200){
error(xhr.response)
}
}
}
ajax的调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.1/qs.min.js"></script>
<script src="./utils.js"></script>
<title>Document</title>
<script>
var url = 'https://api.muxiaoguo.cn/api/lajifl'
var data = {
m:'易拉罐'
}
get(url,data,function(res) {
console.log(JSON.parse(res));
var resp = JSON.parse(res)
var dom = document.getElementsByTagName('div')[0]
dom.innerText = resp.data.description.Release_requirement
},function(res) {
console.log(res);
});
var loginUrl = 'http://47.94.46.113:7788/user/login'
var loginData = {
username: 'admin1',
password: '123321'
}
post(loginUrl, JSON.stringify(loginData), 'application/json', function(res){
var token = JSON.parse(res).data.token
var articleUrl = 'http://47.94.46.113:7788/article/findAll'
get(articleUrl, null, function(res) {
console.log(res);
}, function(res) {}, token)
}, function(res) {})
</script>
</head>
<body>
<div class="box"></div>
</body>
</html>
总结
综合各种变化的技术和强耦合的客户服务端环境,Ajax 提出了一种新的开发方式。Ajax 开发人员必须理解传统的 MVC 架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑 B/S 环境的外部和使用 Ajax 技术来重定型 MVC 边界。最重要的是,Ajax 开发人员必须禁止以页面集合的方式来考虑 Web 应用而需要将其认为是单个页面。一旦 UI 设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。
|