首页IT科技spring boot 解决跨域问题(spring boot 跨域)

spring boot 解决跨域问题(spring boot 跨域)

时间2025-05-04 06:43:03分类IT科技浏览3878
导读:spring boot提供了两种跨域配置方式...

spring boot提供了两种跨域配置方式

1.全局跨域

2.局部跨域

全局跨域

package com.tons.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 所有mapping路径 .allowedOriginPatterns("*") // 所有域 spring-boot 2.4.0及以下使用.allowedOrigins("*") .allowedMethods("POST","GET","PUT","DELETE","OPTIONS") // 请求方式 .allowedHeaders("*") // 所有方法头 .maxAge(168000) // 等待间隔时间(时间过了则需再次认证) .allowCredentials(true); // cookie } }

局部跨域          。使用CrossOrigin注解          ,可修饰类或者方法                。

@PostMapping("/log") @ResponseBody @CrossOrigin public String logPost(@RequestBody JSONObject json, HttpSession session) { String username = json.getString("username"); String password = json.getString("password"); User user = userService.getUserById(username, password); if (user == null) return RestResult.Error("账号或者密码错误!"); session.setAttribute("user", user); return RestResult.OK(UserTokenUtils.encodeUserToKen(user)); }

需要注意的是既是后端开启跨域并允许携带cookie                ,但是前端每次访问后端cookie还是会不断变化     。导致HttpSession无法使用

如果想使用HttpSession(后端做无状态服务器     ,就不用HttpSession          。转而使用JWT技术)          ,就需要

1.每次请求携带cookie // 这是ajax请求使用axios.js axios.defaults.withCredentials = true // axios发送请求带上cookie,有cookie就有session_id

2.设置反向代理

开发阶段 vue-cli devServer: { port: 8080, // 设置代理 proxy: { // 替换了axios请求中的/api /api: { // 代理地址                ,这里设置的地址会代替axios中设置的baseURL target: http://192.168.100.213:8088/, // 如果接口跨域     ,需要进行这个参数配置 changeOrigin: true, ws: true, pathRewrite: { ^/api: } } } }

生产阶段 ngnix

server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } # 配置代理 location /api/ { proxy_pass http://192.168.100.159:8088/; proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
电脑右下角老弹出广告怎么回事(电脑右下角总是弹出广告,如何解决?) 网站如何提高权重(怎么快速提升网站权重到4)