}
文章插图
2第二步:编写前端ajax代码 。
1、位置:D:\Workspaces\MyEclipse 10\servlet\WebRoot\ajax_js.html
2、具体内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>原生js封装ajax</title>
</head>
<body>
<script>
/* 封装ajax函数
* @param {string}opt.type http毗连的体例 , 包罗POST和GET两种体例
* @param {string}opt.url 发送请求的url
* @param {boolean}opt.async 是否为异步请求 , true为异步的 , false为同步的
* @param {object}opt.data 发送的参数 , 格局为对象类型
* @param {function}opt.success ajax发送并领受当作功挪用的回调函数
*/
function ajax(opt) {
//第一步解析请求的属性
【原生js封装ajax】 opt = opt || {};
opt.method = opt.method.toUpperCase() || 'POST';
opt.url = opt.url || '';
opt.async = opt.async || true;
opt.data = https://vvvtt.com/article/opt.data || null;
opt.success = opt.success || function() {
};
//第二步解析请求参数
var params = [];
for ( var key in opt.data) {
params.push(key + '=' + opt.data[key]);
}
//join方式将数组转为指定符号的自字符串 , 如斯处将数组["id=2", "name=李四"]转为"id=2&name=李四"
var postData = https://vvvtt.com/article/params.join('&');
if (opt.url && opt.url.indexOf("?") != -1) {
postData += opt.url.substr(opt.url.indexOf("?") + 1,
opt.url.length);
}
//第三步获取请求的Http对象
var xmlHttp = null;
//若是撑持XMLHttpRequest则利用
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else {
//若是是IE浏览器则需要利用
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
//第四步:发送请求
if (opt.method.toUpperCase() === 'POST') {
xmlHttp.open(opt.method, opt.url, opt.async);
xmlHttp.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded;charset=utf-8');
xmlHttp.s(postData);
} else if (opt.method.toUpperCase() === 'GET') {
xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);
xmlHttp.s(null);
}
//第五步:接管请求并回调函数 。
xmlHttp.onreadystatechange = function() {
//若是请求竣事 , 并当作功
// xmlHttp.readyStat是request 状况 0 还没起头 1 读取中 2 已读取 3 咨询交互中 4 一切完当作
//xmlHttp.status是http和谈状况 200标识请求当作功
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
opt.success(xmlHttp.responseText);
}
if (xmlHttp.readyState == 4 && xmlHttp.status != 200) {
opt.error(xmlHttp);
}
};
}
//挪用请求
ajax({
method : 'POST',
url : '/testServlet.do',
data : {
id : '3',
name : '小丽',
sex : '女'
},
success : function(response) {
console.log(response);
},
error : function(xmlHttp) {
alert(xmlHttp.status);
}
});
</script>
</body>
</html>
文章插图
推荐阅读
- 如何书写原生ajax完成数据交互
- 37岁小甜甜布兰妮再被父亲送进精神病院,是原生家庭的错吗?
- 原生郁金香的种植方法:现蕾后要避免浇淋头水,不然容易烂蕾
- ajax跨域解决方法
- 原生态红石板烤肉,农村小伙这么吃看着都流口水
- 12张图让你明白原生家庭的一切
- 小旺神插件怎样转化还原生意参谋指数
- ajax回调参数乱码怎么办
- 《都挺好》大结局:修复原生家庭创伤成为人生财富!
- ajax怎么传集合