比如http://serverIp:8051/test/index.html页面需要需要访问本地启动的Server,http://localhost:8089/api/heren-plugin/event,这时会存在跨域的问题,解决方案有jsonp和iframe等,但jsonp只能使用get方法调用,没有post,在大数据传输时get方法显然不适合。最好的办法就是在目标域的项目中写一个Filter,如下:
public class HerenCorsFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletResponse.setCharacterEncoding("UTF-8");
HttpServletResponse res = (HttpServletResponse) servletResponse;
res.addHeader("Access-Control-Allow-Origin", "*");
res.addHeader("Allow-Control-Allow-Methods", "POST,GET,OPTIONS");
res.addHeader("Access-Control-Allow-Credentials", "true");
res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
res.addHeader("Access-Control-Max-Age", "600000");
filterChain.doFilter(servletRequest, res);
}
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletResponse.setCharacterEncoding("UTF-8");
HttpServletResponse res = (HttpServletResponse) servletResponse;
res.addHeader("Access-Control-Allow-Origin", "*");
res.addHeader("Allow-Control-Allow-Methods", "POST,GET,OPTIONS");
res.addHeader("Access-Control-Allow-Credentials", "true");
res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
res.addHeader("Access-Control-Max-Age", "600000");
filterChain.doFilter(servletRequest, res);
}
}
需要注意的是,res.addHeader("Access-Control-Allow-Origin", "*")这行代码必须放在最前面,否则不会生效。
这样,我们可以和普通请求一样,使用get和post。
我在之前的一篇博客中介绍了jsonp的使用 http://xunmengsj.iteye.com/blog/1881008
相关推荐
tomcat解决跨域访问问题,具体配置如下: 1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; <filter> <filter-name>...
解决arcgis server跨域问题: 1、停掉ArcGIS Server的服务。 2、 打开<ArcGIS Server> \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4...
Tomcat lib目录下添加cors-filter-1.7.jar,java-property-utils-1.9.jar这两个jar包,项目中web.xml 中添加filter,以及出现OPTIONS 类型的请求并返回403的解决方案;压缩文件包含jar文件,以及web.xml配置。
cors-filter-2.4.jar java-property-utils-1.9.1.jar
spring解决跨域问题(两种方式,配有文档) cors-filter-1.7.jar java-property-utils-1.9.1.jar
geoserver跨域设置: 1、将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入geoserver目录下webapps\geoserver\web-inf\lib中。 2、打开geoserver目录下webapps\geoserver\web-inf中的web....
Tomcat解决跨域时需要用到的Jar包 cors-filter-1.5.0.1.jar和java-property-utils-1.9.1.jar
java cxf webservice接口解决跨域问题,cors-filter-1.7.jar、java-property-utils-1.9.jar,以及web.xml文件配置
通过配置web.xml和引入jar包来解决跨域问题。 cors-filter-2.4.jar和java-property-utils-1.9.jar
tomcat服务器解决跨域问题所需jar包 cors-filter-1.7.jar java-property-utils-1.9.jar
tomcat服务器解决跨域问题所需jar包 cors-filter-1.7.jar java-property-utils-1.9.jar
通过配置web.xml和引入jar包来解决跨域问题。 cors-filter-2.4.jar和java-property-utils-1.9.jar
解决Tomcat跨域的两个jar包,java-property-utils-1.9.jar和cors-filter-1.7.jar
geoserver默认是不支持跨域的,需要我们在geoserver中做一些配置。
1.将cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到lib目录下 2.修改配置文件
最全面关于J2EE跨域资源共享的解决方案以及所需要依赖的Jar包,cors-filter-1.7.jar,java-property-utils-1.9.jar,.......看完这些还不能解决你的问题,联系QQ:1552298726
最近在使用前端调取服务器静态资源的时候,总是报图片跨域的错误,该问题可以通过服务器配置跨域权限来解决。 首先下载cors-filter-2.5.jar和java-property-utils-1.9.1 1、把这两个jar包放在tomcat的lib下。 2、在...
cors跨域需要的cors-filter-1.7.1.jar和java-property-utils-1.9.1.jar,一个拦截器配置文件
javaWeb服务器配置Cors解决前端ajax跨域问题,所需jar包:cors-filter-2.8.jar和java-property-utils-1.9.1.jar,具体操作步骤,请移步至:https://www.cnblogs.com/Marydon20170307/p/11579950.html
包括跨域CORS jar包cors-filter-1.7.jar,java-property-utils-1.9.jar,及geoserver(或tomcat)跨域问题解决方案.txt、web - (示例).xml