老师讲解以下

老师讲解以下

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

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2020-07-29 16:05:31

同学你好,是的,直接使用jq的ajax方法,不需要写上面的封装,也不需要进行判断和拼接,直接使用ajax方法就可以了。

祝学习愉快~

好帮手慕慕子 2020-07-29 13:50:47

同学你好,对于你的问题解答如下:

  1. 是老师自己封装的

  2. 是的,options对应的下面调用ajax方法时,传入的数据。

  3. 老师自己封装的ajax方法就是模拟jq提供的ajax方法,所以如果引入了jq文件,只用jq提供的ajax方法,就不用再写上面的内容。

  4. 使用jq提供的ajax方法,那么与老师封装的代码就没有关系了,此时传入的值,与老师定义的方法中的options是没有关系的。所以不用考虑怎么传值给options

  5. 老师自己封装的ajax方法,就是为了帮助同学更好理解jq本身自带的ajax方法实现思路,同学了解下即可,实际应用中直接使用jq提供的ajax方法就可以了。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 qq_慕瓜7049344 #1
    就是说我按照之前的案例直接写jq的就不需要写上面的封装嘛 那也不需要去进行判断嘛 还需要拼接嘛
    2020-07-29 14:43:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师