tomcat 下配置ajax 跨域 访问

CORS介绍

   它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。

   而W3C的官方文档目前还是工作草案,但是正在朝着W3C推荐的方向前进。

   简言之,CORS就是为了让AJAX可以实现可控的跨域访问而生的。


Tomcat下的配置

  第一种方式

下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到lib目录下。(可在

http://search.maven.org上查询并下载。)


maven 依赖

<dependency>
	    <groupId>com.thetransactioncompany</groupId>
	    <artifactId>cors-filter</artifactId>
	    <version>1.7.1</version>
	</dependency>
	<dependency>
	    <groupId>com.thetransactioncompany</groupId>
	    <artifactId>java-property-utils</artifactId>
	    <version>1.9</version>
	</dependency>


web.xml中的配置如下:  

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

   <filter-mapping>
       <filter-name>CORS</filter-name>
       <url-pattern>/*</url-pattern>
   </filter-mapping>


第二种方式

直接在web.xml中

此时使用的tomcat的catalina,不需要下载任何jar,也不需要引入,此时鼠标放在org.apache.catalina.filters.CorsFilter是点不过去的

<filter>
		<filter-name>CorsFilter</filter-name>
		<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CorsFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
  


注意:二者不能同时使用,不然浏览器端是无法获得值,并报错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat 8.5.85的跨域访问配置可以通过以下步骤完成。 1. 打开Tomcat的安装目录,找到conf文件夹。 2. 在conf文件夹下找到server.xml文件,并用文本编辑器打开。 3. 在<Host>标签中添加以下代码来配置跨域访问策略: ```xml <Valve className="org.apache.catalina.valves.RemoteIpValve" /> ``` 4. 在<Context>标签中添加以下代码来允许跨域访问: ```xml <Context ...> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Filter> <FilterName>CorsFilter</FilterName> <FilterClass>org.apache.catalina.filters.CorsFilter</FilterClass> <InitParam> <ParamName>cors.allowed.origins</ParamName> <ParamValue>*</ParamValue> </InitParam> <InitParam> <ParamName>cors.allowed.methods</ParamName> <ParamValue>GET,POST,HEAD,OPTIONS,PUT</ParamValue> </InitParam> <InitParam> <ParamName>cors.allowed.headers</ParamName> <ParamValue>Content-Type,X-Requested-With,Accept,Authorization,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</ParamValue> </InitParam> <InitParam> <ParamName>cors.exposed.headers</ParamName> <ParamValue>Access-Control-Allow-Origin</ParamValue> </InitParam> </Filter> <FilterMapping> <FilterName>CorsFilter</FilterName> <UrlPattern>/*</UrlPattern> </FilterMapping> </Context> ``` 5. 保存并关闭server.xml文件。 6. 重新启动Tomcat服务器,使配置生效。 以上配置允许任何来源(*)的请求进行跨域访问,并允许的请求方法包括GET、POST、HEAD、OPTIONS和PUT。还可以根据实际需求修改允许的请求头和暴露的响应头。 希望以上回答能解决你的问题。如果还有其他疑问,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值