vue+springboot2.0前後端分離專案傳輸cookie,獲取cookie,返回cookie
阿新 • • 發佈:2019-01-01
上程式碼:
前端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