一、什么叫前后端分离?
前后端分离就是前端一个项目,后端一个项目,前端只负责前端的业务逻辑,使用的请求都是Ajax请求,后端只负责写接口,返回的都是json对象。前后端分离的效率比使用jsp的效率还要高。
二、跨域问题
跨域问题指的是前端项目的ip地址或者端口号或者域名与后端接口的IP地址不一致导致发送Ajax请求被拦截,无法成功发送Ajax请求,发送普通请求不影响。
那么怎么解决跨域无法发送请求的问题?
后端添加一个拦截器允许跨域
import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS").allowCredentials(true).maxAge(3600).allowedHeaders("*");}}
跨域session和cookie失效问题
由于跨域所以发送请求时不会带上cookie,而session是基于cookie的,所以cookie失效了session也会失效,那么怎么解决呢。
解决session和cookie失效问题
使用token来模拟session,将token放到请求头,前端每次请求都带上token,后端提供一个接口来给前端获取token。
token是遵从JWT规范的