欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tomcat跨域配置

程序员文章站 2022-03-18 16:13:46
...

问题描述

在服务器的tomcat上面,挂载了一个共享路径,然后在前端浏览器请求的时候出现了跨域的问题。

 

解决方法

前端请求服务器的资源出现跨域的时候,一般是通过配置服务器的跨域来解决的,所以在此处我们配置服务器中的tomcat跨域就可以,具体操作如下:

1、通过如下地址

链接:https://pan.baidu.com/s/1HHYtFf-9a73W_Gyhua8NMQ 
提取码:sald

下载所需的两个jar包,然后将这两个包拷贝到tomcat安装目录的lib文件夹下,为了避免后期配置了还是会出现跨域的情况,在bin目录下也复制一份。

2、打开tomcat安装目录的conf目录,打开web.xml文件,然后在此文件的中间位置,大概460多行附近,粘贴如下代码到此文件:

	<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> 

3、重启tomcat即可。

 

附:

tomcat按照上述步骤配置后是可以解决跨域问题的,但这种配置仅仅解决的是tomcat里的webapps这个目录下的跨域,就是说,你如果想请求tomcat里的webapps这个目录里的资源出现了跨域的话,你按照上述做法是可以的,但是如果像我一样,将共享路径挂载到tomcat,前端去请求共享路径里的内容时出现跨域,那上述做法是没用的,你只能暂时允许浏览器跨域的方式解决,如下:

1、打开谷歌浏览器快捷方式的属性面板,然后在【目标】这个属性之后跟下面的代码:

--args --disable-web-security --user-data-dir

Tomcat跨域配置

2、关闭现有打开的所有谷歌浏览器面板,重新打开谷歌浏览器,如果出现如下信息,则表示浏览器跨域配置成功:

 

Tomcat跨域配置