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