博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装的AJAX
阅读量:5209 次
发布时间:2019-06-14

本文共 1400 字,大约阅读时间需要 4 分钟。

function AJAX(obj){

//做网络请求的时候,参数以对象的形式传递进来
//规定: obj里面包含属性:1.url; 2.type -- get或是post; 3.data --前端给后端传递的参数(前端传递的时候以"对象"的形式); 4.回调函数---success; 5.回调函数---error

if (obj.callBack) {
var sc = document.createElement("script");
document.documentElement.appendChild(sc);
sc.src = obj.url+"?"+obj.key+"=callBack";//-------------------
return;
}
var ajaxObj = null;
if (window.XMLHttpRequest) {
ajaxObj = new XMLHttpRequest();
}else{
ajaxObj = ActiveXObject("Microsoft.XMLHTTP");
};
ajaxObj.onreadystatechange = function(){
if (ajaxObj.readyState == 4) {
if (ajaxObj.status >= 200 && ajaxObj.status < 300 || ajaxObj.status == 304) {
if (obj.success) {
obj.success(JSON.parse(ajaxObj.responseText));
// obj.success(ajaxObj.responseText); //text,解析
}else{
alert("您忘记了success函数");
}
}else{
if (obj.error) {
obj.error(ajaxObj.status);
}else{
alert("您忘记了error函数");
}
}
}
}
//type转化为小写
var type = obj.type || "get";
type =type.toLowerCase();
//判断是否传递了参数
var params = "";
if (obj.data) {
for (var key in obj.data) {
params += (key + "=" + obj.data[key] + "&");
}
params = params.slice(0,params.length-1);
}
if (type == "get") {
ajaxObj.open(type,obj.url+"?"+params,true);
console.log(obj.url+"?"+params);
ajaxObj.send();
}else{
ajaxObj.open(type,obj.url,true);
ajaxObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajaxObj.send(params);
}
}

转载于:https://www.cnblogs.com/promiseZ/p/6249685.html

你可能感兴趣的文章
mysql(mariadb)
查看>>
js实现深拷贝
查看>>
三维曲线
查看>>
单片机基础
查看>>
[开源][设计]优秀的3D绘图软件——Blender
查看>>
NUMPY数组及处理:效率对比
查看>>
208道面试题
查看>>
ng 依赖注入
查看>>
Leetcode-Max Points on a Line
查看>>
node.js+npm+express+mongodb的下载安装及配置(1)
查看>>
五一 考试二
查看>>
Oracle笔记(十六) 数据库设计范式
查看>>
CentOS 6.3(x86_64)下安装Oracle 10g R2
查看>>
JDBC+MYSQL初始学习
查看>>
[2014-9-13]委托多线程
查看>>
hibernate查询之后用el表达式取值时遇到的问题
查看>>
win10,anconda, python3.6安装dlib19.17
查看>>
Web —— 在自己电脑搭建网站,发布到公网,并使用域名访问
查看>>
Coursera Algorithms Programming Assignment 1: Percolation(100分)
查看>>
DirectX学习笔记一 #数学基础
查看>>