基于安全的考虑,AJAX只能访问本域下的资源,而不能跨域访问。
最近项目采用phonegap+sencha touch进行移动开发,后台数据采用cxf发布restfull的接口,此时面临的问题就是跨域访问问题。在网上找了很多资料,基本上都采用jsonp非官方协议来处理,jquery对此提供了很好的支持,同时sencha touch也提供了支持,但后台返回内容需要进行包装。在sencha touch文档的ajax部份发现可以通过修改服务器配置来实现跨域请求,在网上找到的资料:http://www.verydemo.com/demo_c199_i15317.html ,官网:http://software.dzhuvinov.com/cors-filter-installation.html 。
对于服务器端支持配置进行简单记录:
1、到官网下载依赖包:cors-filter-1.7.jar,java-property-utils-1.9.jar,并导入项目;
2、在web.xml文件中添加filter
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
至此就完成了服务器端跨域支持配置,在前端就可以像访问同域一样进行ajax请求了。