- 主题:关于jsonp有个问题困扰很久了
jsonp请求接收到服务器返回的“jsonpcallback(jsonPara)”JS脚本代码后,具体执行的时候,是如何把jsonpcallback的jsonPara送入success回调的?或者说,jsonpcallback这个回调的函数体定义在哪里?(我用jsonp这么久,好像从来没定义过它的函数体,一直都是起个名字,传递这个名字到服务端)。
--
FROM 111.198.98.*
至于aaa,如果用jquery,jq会给你生成个function,如果自己写,就必须
自己写function aaa
意思是不是说,我自己定义了回调函数名,就必须完整的定义回调函数的函数体??
--
FROM 111.198.98.*
【 在 shaolin 的大作中提到: 】
: xxx?callback=aaa
: 服务器生成,aaa({xxxx});
: 这段代码会在html中会被当做script标签引入,相当于
: ...................
还有,我如果用jq生成的那个function,到哪里去看你说的jq生成的那个function的函数体。。。我的问题是:我想看看这个回调函数的内部逻辑。
--
FROM 111.198.98.*
【 在 shaolin 的大作中提到: 】
: 内部逻辑自己写啊。
: 比如自己写function aaa(param) {alert(param.a)}
: 或者jq里边callback:function(param){...}
: ...................
问题是,我没有写内部逻辑,怎么也可以调成功呢?我只是在jsonpCallback这个属性里定义了一个函数名而已。
另外,如果按你说的,我不定义这个函数名,由jq生成。那它的内部逻辑在哪里?
--
修改:paulwing FROM 111.198.98.*
FROM 111.198.98.*
【 在 shaolin 的大作中提到: 】
: 相当于在页面生成一个script标签
: <script src="xxxxx?callback=aaa"></script>
: src里边的内容是服务器生成的,内容是aaa(param)
: ...................
jsonp的原理不用重复了。这不是我的问题。针对你这个回答,我的问题直白点说,就是aaa(param)的函数体在哪里定义的?也就是aaa的内部逻辑。我要看aaa是如何处理param的,看这个过程细节。按你楼上回答的意思,似乎是需要自己写。但是我不用自己写,也可以成功获取param。另外就是,如果让jq生成这个回调(也就是aaa),那它的内部逻辑在哪里?????
--
修改:paulwing FROM 124.204.243.*
FROM 124.204.243.*
不知道我的表达是否清楚。。。。
--
FROM 124.204.243.*
【 在 shaolin 的大作中提到: 】
: 自己写啊。
: 比如jq的 success: function(param) {xxx}
: 就这个啊。
: ...................
假如我用jq生成的,它不是一个随机函数名吗?假如是:jQuery_1231231231231,那么这个随机函数名jQuery_1231231231231怎么跟success:function(param){xxx}这个函数扯上关系的?其实这就是我不明白的地方。按实际效果来看,jQuery_1231231231231的函数体也就是success的函数体,也就是说jQuery_1231231231231写完整是这样的:jQuery_1231231231231(){xxx}。但是我不明白这个jQuery_1231231231231的实现为什么是{xxx}。因为没见哪里将它的内部逻辑(也就是我说的函数体)定义成:(xxx)。
--
修改:paulwing FROM 111.198.98.*
FROM 111.198.98.*
【 在 shaolin 的大作中提到: 】
: 比如,window.jQuery_1231231231231 = 你那个function
:
window.jQuery_1231231231231 = 你那个function 这个表达式是怎么来的呢?我的代码里没写过这个呀。看jqery里,也没找到这样的定义啊
--
FROM 111.198.98.*
【 在 shaolin 的大作中提到: 】
: callback function是你写的吧,比如success: function,假如function name 是 func1.
: jquery 随机生成一个串,比如jq_aaaaaa1,然后jquery发一个请求,
: 就是xxxxx?callback=jq_aaaaaaa1,并且,jq把那个方法挂一下,比如window.jq_aaaaaa1 = func1.
: ...................
哎,别嫌我费劲。我也是为了彻底搞透这个东西。你的解释,已经快接近我的疑问了。你现在说“jq把那个方法挂一下,比如window.jq_aaaaaa1 = func1. ”,这个“挂一下”,能给我讲讲吗?我其实关注的就是这里。我大概看了源码,没找到“挂”的操作,当然,我看源码很吃力,可能有遗漏。
--
FROM 111.198.98.*
感谢以上朋友的指点。现在已搞明白了。
--
FROM 123.126.85.*