麻烦老师看看我这理解是对的么
来源:3-5 跨域调用
光着膀子去南极
2020-07-29 15:20:35


跨域:
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回答
同学你好,整体理解是对,针对同学的问题解答如下:
?表示将地址和传递的参数隔开,&表示将参数与参数隔开。示例:

这里不是判断是否有效,而是判断是否传入了地址。如果没有传入地址,即:url为空,那么!url 返回的结果就是true,这样就会直接退出函数了。
是的,理解是对的,catch语句不写也是可以的。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题