Tomcat跨域访问(CROS)

您所在的位置:网站首页 tomcat配置跨域 Tomcat跨域访问(CROS)

Tomcat跨域访问(CROS)

2024-07-17 03:02| 来源: 网络整理| 查看: 265

文章目录 第二步:在tomcat服务器下webapps/ROOT目录下创建如下两个xml文件1. clientaccesspolicy.xml2. crossdomain.xml 第三步:修改Tomcat服务器下conf/web.xml,或者项目WEB-INF/web.xml, 项目场景:

两个项目 ,同一域名不同端口 分别跑在同一台机器的两个tomcat中,构成跨域。

首先需要进行cros配置,详见下面说明(这里使用了cors-filter jar包方式)

意图跨域访问的请求不需要session验证:跨域访问在进行session验证时可利用请求头Referer参数判断请求来源,若是来自允许的域则直接通过。

完成后,前端可直接使用ajax post请求 跨域提取数据(测试浏览器:chrome).

第一步:页面js代码:

function createCORSRequest(method, url){ var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr){ xhr.open(method, url, true); } else if (typeof XDomainRequest != "undefined"){ xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; } var request = createCORSRequest("get", "http://192.168.5.221:8080/"); if (request){ request.onreadystatechange = function(){ if (request.readyState == 4 && request.status == 200) { var response = request.responseText; console.log(response) } request.send(); } 第二步:在tomcat服务器下webapps/ROOT目录下创建如下两个xml文件 1. clientaccesspolicy.xml 2. crossdomain.xml 第三步:修改Tomcat服务器下conf/web.xml,或者项目WEB-INF/web.xml,

我选择的是在项目下配置过滤器。我验证了两个,一个是tomcat下自带的cors过滤器,一个是cors-filter-1.7.jar下的过滤器。两个我都测试了,没问题。

应用tomcat的filter配置如下:参数cors.allowOrigin可以指定具体的源来访问

CorsFilter org.apache.catalina.filters.CorsFilter cors.allowed.origins * cors.allowed.methods GET,POST,HEAD,OPTIONS,PUT cors.allowed.headers Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers cors.exposed.headers Access-Control-Allow-Origin,Access-Control-Allow-Credentials cors.support.credentials true cors.preflight.maxage 10 CorsFilter /*

或者应用cors-filter-1.7.jar,还需要java-property-utils-1.9.jar,可以在http://mvnrepository.com/artifact/com.thetransactioncompany/cors-filter 选择某个版本导入pom.xml中,自动导入jar包。

配置如下:参数cors.allowOrigin可以指定具体的源来访问

CORS com.thetransactioncompany.cors.CORSFilter cors.allowOrigin * cors.supportedMethods GET, POST, HEAD, PUT, DELETE cors.supportedHeaders Accept, Origin, X-Requested-With, Content-Type, Last-Modified cors.exposedHeaders Set-Cookie cors.supportsCredentials true CORS /*


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3