Jsonp其实就是一个跨域解决方案。
Js跨域请求数据是不可以的,但是js跨域请求js脚本是可以的。
所以可以把要请求的数据封装成一个js语句,做一个方法的调用。
跨域请求js脚本可以得到此脚本。得到js脚本之后会立即执行。
可以把数据做为参数传递到方法中。就可以获得数据。从而解决跨域问题。
jsonp原理:
浏览器在js请求中,是允许通过script标签的src跨域请求,可以在请求的结果中添加回调方法名,在请求页面中定义方法,既可获取到跨域请求的数据。
淘淘商城的理解:
在taotao-portal中访问taotao-rest中的category数据,
一个是8082的端口,一个是8081的端口,同一个域名,但是端口不一样,所以跨域访问数据是不可以的。可以利用上面的jsonp的方式来进行访问。
在js中定义一个url,用于访问服务上面的category.json的数据,这样子是获取不到数据的
定义一个方法利用script的方式获取脚本
将category的数据封装成一个js类型的语句,它调用一个js的方法,即最后一个图的方法,在调用方法时将参数传递过去。
js脚本中的参数传递过来,获取到数据,在回调方法中获取数据即可。