怎么实现在本地tomcat(localhost:8080)的情况下依然可以跨域访问获取数据?
准备工具,我们需要两个包:
java-property-utils-1.9.1.jar 和 cors-filter-2.5.jar
对于一些新人来说,可能找包会比较麻烦,那么,我在这里贴上百度云的地址,大家可以试着在百度云上下载(之前图方便,找了一些网上其他人给的链接,结果都是要钱的o(╥﹏╥)o,无奈自己建个项目,跑个maven,O(∩_∩)O哈哈~)
链接: https://pan.baidu.com/s/1JY0BZdjYO_4LWEyN8kj9uA 提取码: ss5q
服务器的相关修改
在tomcat的(tomcat安装路径下conf文件下就有相关的配置文件)Web.xml中加上如下配置(建议用一些编辑器打开,比如:notepad):
<!-- 提供跨域支持 -->
<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>
效果如下图所示:
注意!!!
好了,之前我也是这样做就完事了,但是发现一个怪异的问题,设置完没有效果啊?!
后面记过查找,给出的一个解决方案是,浏览器是有是否支持跨域访问的功能的(我喜欢用chrome进行开发,所以就已Chrome为例操作了,其他浏览器的问题有兴趣可以自己查找一番)
如果一定要使用chrome跨域访问的话,需要在chrome快捷方式后面加一段代码 ,如图所示
–args --disable-web-security --user-data-dir
完整的写法是
C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --args --disable-web-security --user-data-dir
最后,欢迎各位评论,共同精进,纯粹为了学习,不然我也学其他地方把工具什么的都设置收费了