首先动态添加一个script标签,script标签里的src是没有跨域限制的
在客户端脚本中注册一个回调函数,然后把回调函数的名字传递给服务器,服务端得到请求的数据后,用回调函数把输出返回的内容包起来,这样,服务器生成的json数据就能被客户端正确接受
然后以js语法的方式,生成一个function,function的名字就是传递上来的参数callback方法的名字
最后将json数据直接以入参的方式,放置到function中,这样就生成了一段js语法的文档,返回给客户端
function jsonpCallback(result) {
alert(result.msg);
}
其中jsonCallback是客户端注册的,获取跨域服务器上的JSON数据后,回调的函数。http://crossdomain.com/jsonServerResponse?jsonp=jsonpCallback 这个url是跨域服务器取JSON数据的接口,参数为回调函数的名字,返回的格式为: jsonpCallback({msg:'this is jsondata'}) 。如此就生成了一段js语法的文档, 传回客户端就可以调用jsonpCallBack函数了.
网友评论