Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
localhost上的Angular Spring启动Cookie_Angular_Spring_Spring Boot_Cookies - Fatal编程技术网

localhost上的Angular Spring启动Cookie

localhost上的Angular Spring启动Cookie,angular,spring,spring-boot,cookies,Angular,Spring,Spring Boot,Cookies,我有Angular 7作为前端,Spring Boot作为后端 Angular应用程序托管在localhost:4200上,Spring应用程序托管在localhost:8080上 在用户登录时,我正在保存一个spring会话,并返回一个cookie。当用户再次尝试登录时,我首先检查会话是否存在 为此,客户端需要cookie。但是我在客户端请求中没有得到任何cookie 在Chrome开发工具的“应用程序”选项卡中,可以看到以下cookie: 在Spring Boot的application.

我有Angular 7作为前端,Spring Boot作为后端

Angular应用程序托管在localhost:4200上,Spring应用程序托管在localhost:8080上

在用户登录时,我正在保存一个spring会话,并返回一个cookie。当用户再次尝试登录时,我首先检查会话是否存在

为此,客户端需要cookie。但是我在客户端请求中没有得到任何cookie

在Chrome开发工具的“应用程序”选项卡中,可以看到以下cookie:

在Spring Boot的application.properties中,我有:

spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
server.servlet.session.timeout=60
spring.session.jdbc.table-name=SPRING_SESSION
server.servlet.session.cookie.max-age=2592000
在控制器中:

@RestController
@CrossOrigin(allowCredentials = "true", origins = {"http://localhost:4200", "http://127.0.0.1:4200"})
@RequestMapping(value = "/users")
public class UsersController {    
    ...

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public ResponseEntity<?> login(HttpServletRequest request, HttpServletResponse response) {

        Cookie[] cookies = request.getCookies();
        if(cookies != null) {
          for (int i = 0; i < cookies.length; i++) {
              String cookieName = cookies[i].getName();
              String cookieValue = cookies[i].getValue();
              logger.info("UsersController - cookie - {} {}", cookieName, cookieValue);
           }
        }
        HttpSession springsession = request.getSession(false);
        if (springsession != null) {
            logger.info("UsersController - login - session exists");            
            ...
        }       

        logger.info("UsersController - login - session does not exist");
        ...
    }
@RestController
@交叉原点(allowCredentials=“true”,原点={”http://localhost:4200", "http://127.0.0.1:4200"})
@请求映射(value=“/users”)
公共类UsersController{
...
@RequestMapping(value=“/login”,method=RequestMethod.GET)
公共响应登录(HttpServletRequest请求,HttpServletResponse响应){
Cookie[]cookies=request.getCookies();
如果(cookies!=null){
for(int i=0;i
我在客户端请求中没有得到任何cookie

然而,当我尝试从邮递员那里获得多个登录请求时,它是有效的

那么为什么它不能在浏览器上工作呢

我已尝试将server.servlet.session.cookie.domain属性设置为null、false、127.0.0.1,但均无效


如何解决这个问题?

spring会话策略是基于头还是基于cookie?@Barath cookiebased@Barath没有其他配置。@SpringBootApplication公共类DemoApplication{public static void main(字符串[]args){SpringApplication.run(DemoApplication.class,args);}@Barath没有太多可用的日志。应用程序打印UsersController-login-session不存在您可以启用日志
logging.level.org.springframework.session=debug
并共享它。检查此HttpServletRequest的id:getSession缓存结果(false)是否未找到会话。