淘淘商城14_跨域请求(Jsonp)

 

1.架构分析

Taotao-rest这个工程查询数据库web

Taotao-portal.  只是页面的展现数据库

分类的数据库是从哪来的?  json

从数据库里查询出来跨域

要去rest工程中调用浏览器

2. 跨域请求

分为3种状况:安全

 域名相同,端口号不一样:localhost:8082     localhost:8083架构

域名不一样,端口号相同:172.168.112.13:8080   172.168.112.115:8080jsonp

域名不一样,端口号也不一样  172.168.112.13:8080   172.168.112.115:8081设计

3. 跨域请求的解决方案

webservicerest

httpclient

jsonp

数据须要从taotao-rest工程调用服务得到

4. 跨域问题

Js是不能跨域请求。出于安全考虑,js设计时不能够跨域。

修改taotao-portal工程下的lib-v1.js文件,前提已经把这个category.json放到了rest工程下

 

5. 什么是jsonp

Jsonp其实就是一个跨域解决方案。Js跨域请求数据是不能够的,可是js跨域请求js脚本是能够的。能够把数据封装成一个js语句,作一个方法的调用。跨域请求js脚本能够获得此脚本。获得js脚本以后会当即执行。能够把数据作为参数传递到方法中。就能够得到数据。从而解决跨域问题。

6. 修改文件

6.1把taotao-portal下的category.json文件复制到taotao-rest文件下

 

6.2 修改taotao-poral项目下的lib-v1.js文件

6.3 修改taotao-rest工程下的category.json文件

 

6.4 jsonp原理

浏览器在js请求中,是容许经过script标签的src跨域请求,能够在请求的结果中添加回调方法名,在请求页面中定义方法,既可获取到跨域请求的数据。