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
2、关闭现有打开的所有谷歌浏览器面板,重新打开谷歌浏览器,如果出现如下信息,则表示浏览器跨域配置成功:
上一篇: 云存储