老师帮忙看一下错误

老师帮忙看一下错误

https://img1.sycdn.imooc.com//climg/6241610009ffd69f28780206.jpg

https://img1.sycdn.imooc.com//climg/6241610009be49e912100358.jpg

<script type="module">

import {ajax,get,getJSON,post} from './ajax/index.js';

const url = 'https://www.imooc.com/api/http/search/suggest?words=js';

const p = getJSON(url,{

params:{username:'alex'},

data:{age:18}

});

p.then(response => {

console.log(response);

}).catch(err => {

console.log(err);

})

</script>


正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2022-03-28 15:23:10

同学你好,截图中的报错意思是ajax不是一个构造函数,猜测可能是ajax封装代码中书写有问题,不过只有部分代码,无法准确定位问题所在,建议将你写的完整代码,全部粘贴过来,老师帮助测试。

祝学习愉快~

  • 提问者 Fighting1024 #1

    import Ajax from './ajxa.js';

    import {ERROR_HTTP_CODE,ERROR_HTTP_CODE_TEXT,

    ERROR_REQUEST,ERROR_REQUEST_TEXT,ERROR_TIMEOUT,

    ERROR_TIMEOUT_TEXT,ERROR_ABORT,ERROR_ABORT_TEXT} from './constance.js'


    const ajax = (url,options) => {

    //return new Ajax(url,options).getXHR();

    let xhr;

    const p = new Promise((resolve,reject) => {

    xhr = new Ajax(url,{

    ...options,

    ...{

    success(response){

    resolve(response);

    },

    httpCodeError(status) {

    reject({

    type:ERROR_HTTP_CODE,

    text:`${ERROR_HTTP_CODE_TEXT}:${status}`

    });

    },

    error(){

    reject({

    type:ERROR_REQUEST,

    text:ERROR_REQUEST_TEXT

    });

    },

    timeout(){

    reject({

    type:ERROR_TIMEOUT,

    text:ERROR_TIMEOUT_TEXT

    });

    },

    abort(){

    reject({

    type:ERROR_ABORT,

    text:ERROR_ABORT_TEXT

    });

    },

    }

    }).getXHR();

    });


    p.xhr = xhr;


    p.ERROR_HTTP_CODE = ERROR_HTTP_CODE;

    p.ERROR_REQUEST = ERROR_REQUEST;

    p.ERROR_TIMEOUT = ERROR_TIMEOUT;

    p.ERROR_ABORT = ERROR_ABORT;


    return p;

    }


    const get = (url,options) => {

    return new ajax(url,{...options,

    method:'GET'});

    }


    const getJSON = (url,options) => {

    return new ajax(url,{...options,

    method:'GET',ResponseType:'json'});

    }


    const post = (url,options) => {

    return new ajax(url,{...options,

    method:'POST'});

    }


    export {ajax,get,getJSON,post};


    2022-03-28 15:38:51
  • 好帮手慕慕子 回复 提问者 Fighting1024 #2

    同学你好,ajax是使用箭头函数定义的,不可以作为构造函数使用new关键字调用,在前面的箭头函数课程中有介绍,可以回顾下加深理解与记忆。

    建议修改:去掉new关键字,直接调用函数即可

    https://img1.sycdn.imooc.com//climg/62417b0109e104c206800658.jpg

    祝学习愉快~

    2022-03-28 17:08:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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