jsonp和jsonpcallback的在网上看了各种各样的定义,只感觉越来越😵
1.回调参数指的是jsonp还是jsonpCallback?
2.jsonp到底是回调函数名还是回调函数参数名?
请赐教,不胜感激。
jsonp和jsonpcallback的在网上看了各种各样的定义,只感觉越来越😵
1.回调参数指的是jsonp还是jsonpCallback?
2.jsonp到底是回调函数名还是回调函数参数名?
请赐教,不胜感激。
因为服务端需要两个信息来确定返回的函数名:
函数名是哪一个参数?
比如?邻居=老王&老婆=英子&警察=编号847
这个语句里,后端知道“警察
”才是用来放函数名的。
但是jQuery
默认callback
是用来放函数名的,自作主张地把参数拼成?邻居=老王&老婆=英子&callback=编号847
。
然后服务端找不到“警察”,请求失败。
这时候设置jsonp: "警察"
,jQuery
就能拼成正确的 URL 了。
用来放函数名的那一个参数名,比如“警察
”(等号前那一个,而不是后面一个),就是 jsonp!
函数名是什么?
这就是警察的编号了,jQuery
可能自作主张编一个后缀,比如jQuery129478435
,也就是...警察=jQuery129478435
。
通常这是不影响使用的,但是你想把它语义化一点,你就自己给警察编号,这样jQuery
就不再自作主张,而是按你的想法来,URL 形式最终变成?邻居=老王&老婆=英子&警察=编号847
。
函数名,比如“警察847
”就是 jsonpcallback!
4 回答669 阅读
2 回答746 阅读✓ 已解决
2 回答254 阅读
222 阅读
假设有接口
https://xxx.com/ip?callback=cb
。返回内容
假设使用代码
将请求 URL
https://xxx.com/ip?rest=hhh1&_=1635513210866
将构建 URL
https://xxx.com/ip?callback=hhh1&_=1635513210867
将构建 URL
https://xxx.com/ip?callback=jQuery111309387894838174882_1635513210863&_=1635513210868
看出规律了吗?
jsonp
参数表示callback
的名字,jsonpCallback
则表示callback
的值,即 jsonp 要调用的函数最后的
_
参数,是用来避免缓存用的。