Heim > Fragen und Antworten > Hauptteil
一段简单的JSONP的代码
<script>
function show(json){ //函数show
alert(json.s);
}
</script>
//wd=web,搜索关键词为web;cb=show,回调函数为show
<script src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=web&cb=show">
</script>
/*src的请求结果为:
show({q:"web",p:false,s:["webqq","webqqµÇ½","web of science","web΢ÐÅ","webstorm","webservice","΢²
©","websocket","weblogic","webex"]});
*/
W3school对回调函数的定义:
http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_onreadystatechange...
callback 函数是一种以参数形式传递给另一个函数的函数。
结合w3school对回调函数的定义,函数show应该是传递给服务端某个处理程序中的函数的参数,并且由服务端的函数来调用show。
可是JSONP好像是通过src请求资源,然后返回一个函数调用,比如show({json数据})。
我也不知道该怎么表达了,我想不明白JSONP的回调函数是怎么回事,如果您知道,请您不吝赐教,谢谢!
PHPz2017-04-10 15:33:37
jsonp 只是script跨域特性利用
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery....
伊谢尔伦2017-04-10 15:33:37
不不不,回调函数不是在服务器端被调用的
客户端把回调函数的名字传送给服务端,
然后服务端生成一段js代码且代码中包含着对回调函数的调用,
然后服务端把这段代码返回给客户端,
然后客户端执行这段代码的过程中调用了回调函数,
然后你就可以在回调函数里面处理数据了
。。。
PHPz2017-04-10 15:33:37
回调函数没多大作用,说是作用,就是后端接收函数名,然后再返回。
如:Jquery的ajax
的jsonp
的函数名是可变的。
http://www.zhile.name/14.html