简介: 

众所周知,跨域问题是十分常见的需求,比如让客户端的ext-js控件可以渲染来自服务器端的json对象。我们可以用很多很多方法来解决,比如jsonP.但是,在liferay中,我们可以用serveResource方法来优雅的解决跨域访问问题。

 

白板分析

以下是摘自我在技术讨论会上的白板:

用serveResource解决跨域访问问题_第1张图片

 

解决方法:

首先编写一段serveResource方法,让其和远端的json对象打交道,它作为中间层可以封装来在远程的json资源,然后提供给本域内的ext-js代码来渲染。

用serveResource解决跨域访问问题_第2张图片

 

当然了,这里我们的资源必须用在页面上申明,来让客户端ext-js能用到指定的变量,从而访问到这段代码:

 

客户端,就是基本的ext-js了,它可以去渲染我们serveResource所提供的json资源,因为是本域内,所以不存在跨域。

用serveResource解决跨域访问问题_第3张图片