success方法传入response怎么理解?

success方法传入response怎么理解?

相关代码:

 <title>封装 Ajax</title>
  </head>
  <body>
    <script type="module">
      // const url = 'https://www.imooc.com/api/http/search/suggest?words=js';
      // const xhr = new XMLHttpRequest();
      // xhr.addEventListener(
      //   'load',
      //   () => {
      //     if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
      //       console.log(xhr.responseText);
      //     }
      //   },
      //   false
      // );
      // xhr.open('GET', url, true);
      // xhr.send(null);

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

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

      // const url = './414.html';

      const xhr = ajax(url, {
        method: 'GET',
        params: { username: 'alex' },
        data: {
          age: 18
        },
        responseType: 'json',
        // timeoutTime: 10,

        success(response) {
          console.log(response);
        },
        httpCodeError(err) {
          console.log('http code error', err);
        },
        error(xhr) {
          console.log('error', xhr);
        },
        abort(xhr) {
          console.log('abort', xhr);
        },
        timeout(xhr) {
          console.log('timeout', xhr);
        }
      });

      xhr.abort();
    </script>

问题描述:

  success(response) {

          console.log(response);

        },

        httpCodeError(err) {

          console.log('http code error', err);

        },

        error(xhr) {

          console.log('error', xhr);

        },

        abort(xhr) {

          console.log('abort', xhr);

        },

        timeout(xhr) {

          console.log('timeout', xhr);

        }


不太明白为啥最后用户自定义options的时候,里面的success方法要传入response?还有error传入的xhr等。我的理解是当条件满足的时候会触发load时间然后后端返回xhr.response相关数据(在视频的ajax.js文件),但success方法传入response怎么理解?


正在回答

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

1回答

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

1、“我的理解是当条件满足的时候会触发load时间然后后端返回xhr.response相关数据(在视频的ajax.js文件)”同学的理解是正确的,这里老师是封装了ajax请求。

2、success是ajax里面的一个方法,当数据请求成功的时候执行success方法,response作为参数传递到suceess方法中,ajax.js中的success方法对应的就是options中的方法,当数据请求成功的时候,执行该方法,输出数据。

http://img1.sycdn.imooc.com//climg/60127b15092ce3ce12960279.jpg

3、 error同样也是ajax里面的方法,当数据请求失败的时候执行这个方法。

祝学习愉快!


  • 老师还是看不懂为什么,这里为什么传入response

    success(response){

                    console.log(response);//这里不是用xhr.response?,或者这里的参数可以随意取名吗?只是个名字而已,还有必须用response?

                }

    if (this.ok()) {

                    success(xhr.responsexhr);//这里传的参数也看不懂,很混乱,能不能这里传response,上面的success语句里传xhr.response,有什么不同呢?

                } 

    还有

    httpCodeError(err){

                    console.log('http code error',err);

                }   这里的参数err是啥,哪里来的也看不懂,我没找到用户怎么传入的这个参数,我只能看到而且如果报错err好像就是404 或者405为什么会这样,

    搜索

    复制

    2022-04-24 00:32:44
  • 同学你好,对于你的问题解答如下:

    1、success(response){console.log(response)}是调用ajax传入的参数下的一个方法,response是形参,可以任意取名。

    老师简单标注了下代码的具体执行流程,可以结合下图理解:

    https://img1.sycdn.imooc.com//climg/6264f39c09d9b72119160962.jpg

    2、这里的err信息对应的是根据ajax请求数据后返回的错误信息,该信息是服务器端处理后返回的,与上面的思路一样,同学可以参考梳理下,

    https://img1.sycdn.imooc.com//climg/6264f49709fa8d9d19201007.jpg

    祝学习愉快~

    2022-04-24 14:57:00
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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