当前位置: 首页 > news >正文

手机触屏网站软件外包公司创业

手机触屏网站,软件外包公司创业,免费建自己的网站,360建筑网已经发布的信息在哪里看解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务#xff08;Spring MVC Springboot#xff09;同时允许跨域 Tomcat 配置允许跨域Web 项目配置允许跨域Tomcat 同时允许静态文件和 Web 服务跨域 偶尔遇到一个 Tomcat 部署项目跨域问题#xff0c;因为已经处理…解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务Spring MVC Springboot同时允许跨域 Tomcat 配置允许跨域Web 项目配置允许跨域Tomcat 同时允许静态文件和 Web 服务跨域 偶尔遇到一个 Tomcat 部署项目跨域问题因为已经处理过太多跨域了觉得很简单 。 结果尝试多次均不能达到想要的结果又经过 Nginx、Tomcat 以及项目配置才完全搞定。 另外之前总结了篇 Web 项目跨域问题Geoserver也可以综合参考。 本文包含 Tomcat 配置允许跨域、Web 项目配置允许跨域以及同时允许跨域三部分。 Tomcat 配置允许跨域 使用 Tomcat 作为静态文件服务还是比较简单和常用的而跨域问题也比较容易解决。 Tomcat 静态文件允许跨域设置比较简单百度一搜一堆这里简单贴一下。 1.Tomcat web.xml 配置允许所有跨域 设置之后所有静态文件以及服务均被允许跨域。 1 当未配置允许跨域时报跨域错误 浏览器直接访问是正常的 2Tomcat conf/web.xml 文件配置允许跨域 filter filter-nameCorsFilter/filter-name filter-classorg.apache.catalina.filters.CorsFilter/filter-class init-param param-namecors.allowed.origins/param-name param-value*/param-value /init-param init-param param-namecors.allowed.methods/param-name param-valueGET,POST,HEAD,OPTIONS,PUT/param-value /init-param init-param param-namecors.allowed.headers/param-name param-value*/param-value /init-param init-param param-namecors.exposed.headers/param-name param-valueAccess-Control-Allow-Origin,Access-Control-Allow-Credentials/param-value /init-param init-param param-namecors.support.credentials/param-name param-valuetrue/param-value /init-param/filter filter-mapping filter-nameCorsFilter/filter-name url-pattern/*/url-pattern /filter-mapping配置之后重启 Tomcat再次访问则正常 Web 项目配置允许跨域 Web 项目这里指的是 java 项目打包的时候基本是选择 war 包或者 jar 包。 老项目以 war 包居多新项目Springboot以 jar 包居多。 war 可以直接在 Tomcat 中部署启动而 jar 包则往往通过命令启动。 因此war 的跨域相关配置会收到 Tomcat 跨域配置影响。jar 包独立启动不会受 Tomcat 影响。 这里介绍一下 Web 项目各种允许跨域配置。 1. 未配置允许跨域时报跨域错误 而浏览器地址栏直接可以正常访问 2. 配置允许跨域 1自定义过滤器允许跨域 WEB-INF/web.xml 配置文件允许所有接口跨域一般不建议这样配置。 filterfilter-namecors/filter-namefilter-classMyCORSFilter/filter-class /filter filter-mappingfilter-namecors/filter-nameurl-pattern/*/url-pattern /filter-mapping过滤类任意目录即可以根目录为例其他目录需要加上包路径 import org.springframework.stereotype.Component;import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException;Component public class MyCORSFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException, IOException {HttpServletResponse response (HttpServletResponse) servletResponse;String origin (String) servletRequest.getRemoteHost():servletRequest.getRemotePort();response.setHeader(Access-Control-Allow-Origin, *);response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Headers, x-requested-with,Authorization);response.setHeader(Access-Control-Allow-Credentials,true);filterChain.doFilter(servletRequest, servletResponse);}Overridepublic void destroy() {} }2继承 WebMvcConfigurationSupport 允许跨域 Springboot 框架下的配置允许所有接口跨域Springboot 环境下测试生效Spring MVC环境下测试未生效。 package com.mapsharp.map.web.config;import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;import java.nio.charset.Charset; import java.util.List;/*** author* Description: 设置允许跨域访问static资源* date 2019/6/39:26*/ Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {System.out.println(自动配置生效addResourceHandlers);registry.addResourceHandler(/**).addResourceLocations(classpath:/static/);super.addResourceHandlers(registry);}//前端跨域Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**)//设置允许跨域的路径.allowedOrigins(*)//设置允许跨域请求的域名.allowedHeaders(*)//是否允许证书 不再默认开启.exposedHeaders(Access-Control-Allow-Origin,Access-Control-Allow-Credentials)//是否允许证书 不再默认开启.allowCredentials(true)//是否允许证书 不再默认开启.allowedMethods(GET, POST, PUT, OPTIONS, DELETE)//设置允许的方法.maxAge(3600);//跨域允许时间}//为了解决中文编码方式乱码问题Beanpublic HttpMessageConverterString responseBodyConverter() {StringHttpMessageConverter converter new StringHttpMessageConverter(Charset.forName(UTF-8));converter.setWriteAcceptCharset(false);return converter;}Beanpublic ObjectMapper getObjectMapper() {return new ObjectMapper();}Beanpublic MappingJackson2HttpMessageConverter messageConverter() {MappingJackson2HttpMessageConverter converter new MappingJackson2HttpMessageConverter();converter.setObjectMapper(getObjectMapper());return converter;}Overridepublic void configureMessageConverters(ListHttpMessageConverter? converters) {converters.add(responseBodyConverter());converters.add(messageConverter());} }3CrossOrigin 注解允许跨域 注意 Spring 框架版本测试项目 Spring MVC 和 SpringBoot 均生效。 根据实际需求选择在 类或者方法 剩添加 CrossOrigin 注解即可。 这样的好处是最小颗粒度控制允许跨域。 Tomcat 同时允许静态文件和 Web 服务跨域 Tomcat 静态文件和 Web 服务同时允许跨域即 Tomcat webapp 目录下同时存在静态文件服务和 war 包启动的服务。 开始阶段发现配置 Web 服务允许跨域之后不生效。但是静态文件可以正常访问。 后来经过测试要想静态文件和 Web 服务接口都允许跨域需要以下条件 1.Tomcat 设置允许所有跨域开放最大权限 注意下图中红框部分笔者当时没注意导致一直没解决问题。 注意红框部分需要注释掉 2.Web 服务不设置任何允许跨域配置CrossOrigin注解不影响 Tomcat 中的 Web 服务即 war 包中不能设置允许跨域配置。 但是经过测试 CrossOrigin注解 可以设置不影响跨域结果。 文章小结如果 Tomcat 和 Web 服务都配置了 web.xml 允许跨域则会出现冲突不能解决跨域问题。 如果只是 Web 项目则在接口层面进行控制 如果也需要静态文件和 Web 服务同时允许跨域则在Tomcat 中进行一次配置即可。 同时配置允许跨域不生效的原因个人感觉是因为有啥冲突AI 的回答是 参考博客 tomcat 设置允许跨域访问 Tomcat解决跨域问题(Access-Control-Allow-Origin,403,404)
http://www.hkea.cn/news/14397772/

相关文章:

  • 做旅游网站会遇到什么问题成都网站关键词
  • 网站建设从化公司想做个网站
  • 烟台优化网站福州网站定制设计
  • 微商做网站网站网页入口网站推广
  • 赶集网的二级域名网站怎么做网站开发公司需要哪些部门
  • 中国建设银银行招聘网站济南做网站建设
  • 模版型网站网站seo在线诊断
  • 现在什么视频网站做的最好网站建设php的心得和体会
  • 注册网站卖钱最多的人wordpress广告代码没显示
  • 好推建站郑州建设信息网打不开
  • 如何做旅游小视频网站成全视频在线时间观看
  • 网站怎么做百度快照北京网站备案负责人变更
  • 网站建设设计制作熊掌号怀化二医院网站
  • 网站如何做实名验证码一个人看手机在线视频
  • 南宁哪个公司做网站好温州瑞安网站建设平台
  • 实际讲解做钓鱼网站网站asp
  • 怎么自己做音乐网站wordpress图片多
  • 网站后台怎么上传表格做网站我网站找第三方支付
  • iis如何用ip地址做域名访问网站电子商务网站建设与原理
  • 成都seo整站宁德市自然资源局
  • 姚孟信通网站开发中心网站添加可信任站点怎么做
  • 站群服务器好看的主页背景图片
  • 岳阳网站建设一站式服务邯郸房产信息网
  • 广东网站建设开发如何自已建网站
  • 初一下电脑课书做网站镇江seo快速排名
  • 网站开发学习视频项目管理工具
  • 外贸网站推广策划本溪网站设计
  • 重庆网站设计更新手机排行榜最新
  • 无锡市政务服务网站建设项目wordpress 免邮箱
  • 广州平台网站搭建中山做网站联系电话