上代码:
前端vue:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<title>hello world</title>
</head>
<body>
<div id="app">
<h1>hello world</h1>
用户名: <input type="text" v-model="username">
<button @click="submit">提交</button>
</div>
</body>
<script src="../static/js/vue.js"></script>
<script src="../static/js/axios.min.js"></script>
<script>
axios.defaults.baseURL = 'http://localhost:8066'
axios.defaults.withCredentials=true;
new Vue({
el: "#app",
data() {
return {
username: ''
}
},
methods: {
submit() {
axios.post('login', {
username: this.username
}).then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
});
}
}
})
</script>
</html>
后台java
跨域配置类:
@Configuration
public class CrossConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域请求的域名
.allowedOrigins("*")
//是否允许证书 不再默认开启
.allowCredentials(true)
//设置允许的方法
.allowedMethods("*")
//跨域允许时间
.maxAge(3600);
}
}
cookie工具类
public class CookieUtils {
public static String getCookie(HttpServletRequest request, String cookieName) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(cookieName)) {
return cookie.getValue();
}
}
}
return null;
}
public static void writeCookie(HttpServletResponse response, String cookieName, String value) {
Cookie cookie = new Cookie(cookieName, value);
cookie.setPath("/");
cookie.setMaxAge(5 * 60);
response.addCookie(cookie);
}
}
controller
@RestController
public class LoginController {
final String TOKENX = "1234";
@PostMapping("login")
public String queryPoolList(@RequestBody User user, HttpServletResponse response,
@CookieValue(value = "token", required = false) String token) {
if (token == null) {
CookieUtils.writeCookie(response, "token", TOKENX);
} else {
System.out.println(token);
}
//返回前台
return "成功";
}
}
参考:
已经解决了
https://blog.csdn.net/heatdeath/article/details/79260053
https://blog.csdn.net/weixin_40648117/article/details/79066550