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请求少了‘_’参数

你可能感兴趣的:(Jsonp解决跨域3)