最近面试前端,问到跨域,很多人都能说出jsonp,但是问起原理和实现,回答含糊不清,JSONP是如何来实现跨域的,我的理解是:ajax对于跨域是禁止的,但是页面中的src标签是不受跨域限制的,这是实现jsonp关键的一步,a.cn,b.cn,我们在a.cn中写一个callback 函数(比如getData),在b.cn中调用getData(放进去要给a.cn的数据),然后a.cn中

 getData (data) {
   console.log(data)
}

就拿到了b.cn中的数据。 以上就是jsonp核心原理,至于实现步骤,就不扩展了,后端无非是拼接字符,前端就是请求函数和传过去获取数据的参数。另外jquery的$ajax已经实现jsonp,有兴趣可以去看看源码。