问题描述

在服务器的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跨域配置_tomcat跨域

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

 

Tomcat跨域配置_tomcat_02