麻烦老师看看哪里错了

麻烦老师看看哪里错了

var $ = {

    ajax: function(options) {

        var xhr = null, // XML对象 

            url = options.url, // url地址

            method = options.method || 'get', // 传输方式

            async = typeof(options.async) === "undefined" ? true : options.async,

            data = options.data || null, // data接收数据

            params = '', // post传给服务器的参数

            callback = options.success, // ajax请求成功的回调函数

            error = options.error;

        // 将数据转换为字符串形式  username=123456&pwd=123456 (不转也行)

        if (data) {

            for (var k in data) {

                params += k + '=' + data[k] + '&';

            }

            params = params.replace(/&$/, "") // 去掉尾部多出的&


        }

        // 根据method传输方式,改变url(get是在url中传参)

        if (method === "get") {

            url += '?' + params;

        }

        if (typeof XMLHttpRequest != 'undefined') {

            xhr = 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.2.0', ];

            // 遍历创建XMLHttpRequest对象

            var len = xhrArr.length

            for (var i = 0; i < len; i++) {

                try {

                    //创建XMLHttpRequest对象

                    xhr = new ActiveXObject(xhrArr[i]);

                    break;

                } catch (ex) {}

            }

        } else {

            throw new Error('No XHR object availabel.')

        }

        // 响应XMLHttpRequest对象状态变化的函数,onreadystatechange在readystate属性发生改变时触发

        xhr.onreadystatechange = function() {

                if (xhr.readyState === 4) { //异步调用成功,响应内容解析完成,可以在客户端调用

                    if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {

                        callback && callback(JSON.parse(xhr.responseText))

                    } else {

                        error && error();

                    }

                }

            }

            // 创建请求

        xhr.open(method, url, async);

        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

        // 发送请求

        xhr.send(params);

    }

}http://img1.sycdn.imooc.com//climg/5f03234809add2a309590399.jpg

http://img1.sycdn.imooc.com//climg/5f0323050923d25416130161.jpg

正在回答

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

1回答

同学你好,报错信息是跨域的问题,json文件需要在服务器下进行访问。可以使用课程中wampserver服务器或者给出的phpstudy服务器进行测试

http://img1.sycdn.imooc.com//climg/5f03d34109c71b5d04390593.jpg

另外这边测试代码是没有问题的,不需要修改。

祝学习愉快!

  • 慕标1234374 提问者 #1
    好的谢谢,后面又报了这个错误404麻烦老师看看 Failed to load resource: the server responded with a status of 404 (Not Found)
    2020-07-07 10:50:11
  • 慕标1234374 提问者 #2
    没事了,刷新一下没有报错了
    2020-07-07 10:53:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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