麻烦老师看看我这理解是对的么

来源:3-5 跨域调用

光着膀子去南极

2020-07-29 15:20:35

http://img.mukewang.com/climg/5f21208309941f4000000000.jpghttp://img.mukewang.com/climg/5f21208309a7b26900000000.jpg

 

    

    跨域:

        1.提供原始url,和回调函数(等待后端返回getJSONP[name](data)自动执行,然后判断有没有回调函数

          有则执行回调函数反之不执行);

        2.判断url有没有或者是不是有效的,没有/无效-整个getJSONP函数不再执行下去反之继续执行。

        3.我们规定随机生成cbname,也就是getJSONP[name]。

        4.判断原始的url里有没有?,有就添加&,没有添加?。(这个?和&我记得之前隐约明白过,不过现在不记得了)

        5.用原始的url与随机生成的getJSONP[name]拼接,作为动态添加的script的src属性值,这时,我们就可以请求

          到了后端返回的我们随机生成的带有我们想要的数组类型data数据 getJSONP[name](data)函数;

        6.有了 getJSONP[name](data)这个函数执行,js调用这个函数,防止请求出错利用try{}catch(e)finally{}语句

          来调用并删除之前创建的 getJSONP[name](data)这个函数和生成的script标签;

          在try会在getJSONP[name]这个函数作用域里寻找callback,没有则不调用反之调用callback(data)函数,而

          这个data正式我们请求到的数组类型的数据,所以控制台输出了一个数组数据。

我的问题:

        1.url地址有没有这个我明白,不是有效的地址这是怎么判断的?我只知道 0 false '' NaN undefined null为假。

        2.对于上面写的那串 catch(e){} 这段不写也是可以的吧?

          我记得是不是至少要有两个关键字组合,但如果要对捕捉到错误要处理的话就要加上 catch(e){} 

          然后在里面写处理错误的代码,我这理解可以吗?


写回答

1回答

好帮手慕慕子

2020-07-29

同学你好,整体理解是对,针对同学的问题解答如下:

  1. ?表示将地址和传递的参数隔开,&表示将参数与参数隔开。示例:

    http://img.mukewang.com/climg/5f215a0509c9458907670114.jpg

  2. 这里不是判断是否有效,而是判断是否传入了地址。如果没有传入地址,即:url为空,那么!url 返回的结果就是true,这样就会直接退出函数了。

  3. 是的,理解是对的,catch语句不写也是可以的。

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

1

0 学习 · 14456 问题

查看课程