可以这样理解吗

来源:3-4 跨域URL处理

学习plus

2020-07-19 15:31:27

http://class.imooc.com/api/jsonp

这个网站是一个接口,直接搜索,出现这个

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

有点像直接打开PHP文件出的内容,臆想是个服务端处理文件,处理的函数都写在里面,包括规定的?jsonp后缀,回调函数的模板。

http://img.mukewang.com/climg/5f13f47d09d5826d04160205.jpghttp://img.mukewang.com/climg/5f13f5370903010d04220061.jpg

这个jsonp后缀并不是统一规定的,只是http://class.imooc.com/api/jsonp这个处理文件的函数中指定的,如果擅自修改jsonp,比如改为jsonpp,再访问http://class.imooc.com/api/jsonp,会无法读取,值取决于你要访问的接口url中规定的值。


难以理解的是script是如何调用到处理文件里的内容的,目前能想到的是

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

直接搜索script的地址链接

http://img.mukewang.com/climg/5f13f3bd098b8fb407170672.jpg甚至不需要后缀http://img.mukewang.com/climg/5f13f43509a79f4e03330043.jpg

一样可以打开,只不过是个匿名对象

写回答

1回答

好帮手慕慕子

2020-07-19

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

  1. 将script的src标签设置为http://class.imooc.com/api/jsonp这个接口,并传递参数jsonp时,后台在接受到这个请求时,默认做一些处理(这个前端人员不需要关心),将数据作为函数(指的就是发送请求时jsonps对应的函数名)的参数传递过来。

    老师这里简单给同学举个示例,帮助同学更好的理解,如下所示,我们在前端定义函数,将这个函数名传递给后台。如下所示:函数名是任意的,但是参数名jsonp是固定的。

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

    后台接收到请求,会自动调用该方法,将数据作为函数的参数传递过来,这样就可以在控制台查看输出的结果了。

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

  2. http://class.imooc.com/api/jsonp?jsonp这种格式,传递了参数jsonp,只是没有指定参数值而已,那为什么这样写也可以获取到数据呢,因为后端人员进行了处理,当用户只传递了参数,  默认返回一个匿名函数。

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

0

0 学习 · 14456 问题

查看课程