1.添加redis 与 session 依赖
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<!--spring session-->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
2.配置application.yml
spring:
session:
redis:
flush-mode: on_save
namespace: session.zmall #在其他几个服务使用此配置 名字任意,同session名称相同
cleanup-cron: 0 * * * * *
store-type: redis
timeout: 1800
redis:
host: zmall-server
port: 6379
database: 0
password: sasa
jedis:
pool:
max-active: 100
max-wait: 10
max-idle: 10
min-idle: 10
CorsConfig (允许客户端携带验证信息)
//根据客户端的域名,动态响应客户端是否允许
corsConfiguration.addAllowedOrigin("http://zmall.com");
corsConfiguration.setAllowCredentials(true);//允许客户端携带验证信息
package com.zking.zmall.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
/**
* @Autho donkee
* @Since 2022/8/9
* spring-webmvc:CorsFilter
* spring-webflux:CorsWebFilter
* spring-cloud-gateway集成的是webflux,所以这里使用的是CorsWebFilter
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
//根据客户端的域名,动态响应客户端是否允许
corsConfiguration.addAllowedOrigin("http://zmall.com");
corsConfiguration.setAllowCredentials(true);//允许客户端携带验证信息
// corsConfiguration.addAllowedOrigin("*"); //允许任何域名
corsConfiguration.addAllowedHeader("*"); //允许任何头
corsConfiguration.addAllowedMethod("*"); //允许任何方法
return corsConfiguration;
}
/* @Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); //注册
return new CorsFilter(source);
}*/
@Bean
public CorsWebFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",buildConfig());
return new CorsWebFilter(source);
}
}
xhrFields: {
withCredentials: true //允许跨域带Cookie
},
<script>
function addCar(){
//ShowDiv('MyDiv','fade');
var pid = $("#pid").val();
var pnum = $("#pnum").val();
$.ajax({
type: "POST",
url: "http://cart.zmall.com/car/add",
dataType:"json",
data: "pid="+pid+"&quantity="+pnum,
xhrFields: {
withCredentials: true //允