Jsonp解决跨域3

Jsonp解决跨域3



1、jsonp请求修改callback参数名称

你会发现返回数据为json对象,不再是一个js函数

你会发现返回数据为json对象,不再是一个js函数

原因:因为jsonp是一个约定,以前前端和后端的参数约定是callback,现在前端请求参数是callback2,所以后端就不认识callback2,所以就不知道这是一个jsonp请求,所以返回的就不会是一个js代码,如果后端约定也改成callback2,它就会返回js代码

2、jsonp前后端修改约定参数

前端改下约定参数:callback2

前端改下约定参数:callback2

后端改下约定参数:callback2

后端改下约定参数:callback2

jsonp请求参数为callback2,成功返回js代码

jsonp请求参数为callback2,成功返回js代码


3、jsonp请求实质

发送jsonp请求,其实是创建动态创建一个script脚本

打个debug断点才能看到

发送jsonp请求,其实是创建动态创建一个script脚本

执行完head.insertBefore( script,head.firstChild );之后,表示动态创建了一个script脚本

执行完head.insertBefore( script,head.firstChild );之后,表示动态创建了一个script脚本


4、jsonp参数’_’作用

另一个参数‘_’是一串随机的数字,这个是用来避免请求缓存的

另一个参数‘_’是一串随机的数字,这个是用来避免请求缓存的

启动cache表示可以使用缓存

启动cache表示可以使用缓存

你会发现jsonp请求少了‘_’参数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容