一、什么叫前后端分离?
前后端分离就是前端一个项目,后端一个项目,前端只负责前端的业务逻辑,使用的请求都是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;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public 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规范的