vue跨界域名报错,后台解决方法(未实测,仅供参考)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | package com.foen.framework.config; import javax.servlet.*; import com.foen.common.utils.StringUtils; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * vue跨界域名报错 * @Autor:gzh * implements Filter */ //@Configuration public class CrosConfig{ private CorsConfiguration buildConfig(){ CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin( "*" ); //1。允计任何域名使用 corsConfiguration.addAllowedHeader( "*" ); //2。允计任何头 corsConfiguration.addAllowedMethod( "*" ); //3。允计任何方法 return corsConfiguration; } //@Bean public CorsFilter corsFilter(){ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration( "/**" ,buildConfig()); return new CorsFilter(source); } /** @Override public void doFilter(ServletRequest res, ServletResponse req, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; // 不使用*,自动适配跨域域名,避免携带Cookie时失效 String origin = request.getHeader( "Origin" ); if (StringUtils.isNotBlank(origin)) { response.setHeader( "Access-Control-Allow-Origin" , origin); } // 自适应所有自定义头 String headers = request.getHeader( "Access-Control-Request-Headers" ); if (StringUtils.isNotBlank(headers)) { response.setHeader( "Access-Control-Allow-Headers" , headers); response.setHeader( "Access-Control-Expose-Headers" , headers); } // 允许跨域的请求方法类型 response.setHeader( "Access-Control-Allow-Methods" , "*" ); // 预检命令(OPTIONS)缓存时间,单位:秒 response.setHeader( "Access-Control-Max-Age" , "3600" ); // 明确许可客户端发送Cookie,不允许删除字段即可 response.setHeader( "Access-Control-Allow-Credentials" , "true" ); chain.doFilter(request, response); } @Override public void destroy() { }**/ } |
分类:
java基础(面向对象)
, Vue + ElementUI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-03-10 微信小程序,下拉,可选择手动输入