老师讲解以下
var $ = {
ajax: function (options) {
var xhr = null, //XMLHttpRquest对象
data = options.data || null,
parren = "",
callbakc=options.success; //定义回调函数
url = options.url,//url地址
method = options.method || 'get',//传输方式
//判断async是否有传值过来 如果没有 那么它就是true 如果有就按照它传的值
async = typeof (options.async) === "undefined" ? true : options.async;
//将得到的数据遍历出来
if(data){
for(var i in data){
//将得到的数据拼接在一起
parren += i + '='+data[i]+'&';
}
//用&隔开数据 替换掉最后一个&号
parren=parren.replace(/&$/,"")
}
//根据mathon的值改变url
if(method === 'get'){
url+='?'+parren;
}
console.log(url);
//判断浏览器是否将XMLHttpRequest作为本地对象实现,针对IE7,Firefox,Opera等浏览器
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {
//将所有可能出现的ActiveXObject版本放在一个数组中
var xhrArr = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'
];
//遍历创建XMLHttpRequest对象
var len = xhrArr.length;
for (var i = 0; i < len; i++) {
try {
//创建XMLHttpRequest对象
xhr = new ActiveXObject(xhrArr[i]);
//如果创建XMLHttpRequest对象成功,则跳出循环
break;
} catch (ex) { }
}
} else {
throw new Error("No XHR object available.");
}
}
// jsonp:function(){
// }
}
$.ajax({
url: "www.12345.com",
method:'post',
async: true,
})
老师上面的$是不是老师自己封装的jq 那个options 是不是对应的下面的ajax的数据 老师如果直接引用外部的jq文件还需要写上面的内容嘛 下面的值是怎么作为值传给option的
正在回答 回答被采纳积分+1
同学你好,对于你的问题解答如下:
是老师自己封装的
是的,options对应的下面调用ajax方法时,传入的数据。
老师自己封装的ajax方法就是模拟jq提供的ajax方法,所以如果引入了jq文件,只用jq提供的ajax方法,就不用再写上面的内容。
使用jq提供的ajax方法,那么与老师封装的代码就没有关系了,此时传入的值,与老师定义的方法中的options是没有关系的。所以不用考虑怎么传值给options
老师自己封装的ajax方法,就是为了帮助同学更好理解jq本身自带的ajax方法实现思路,同学了解下即可,实际应用中直接使用jq提供的ajax方法就可以了。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星