我是在使用vue,前后端分离时,使用ssm框架,登录验证码验证的时候,往setAttribute()附的值,getAttribute()获取不到值。因为跨域问题,两个Session的地址不同,所以Session中的getAttribute()方法获取的value为null。

可以在vue的main.js中配置如下:

import axios from 'axios'
axios.defaults.withCredentials = true

java代码,在pom中配置如下:

<!--解决session不一致-->
    <dependency>
      <groupId>com.thetransactioncompany</groupId>
      <artifactId>cors-filter</artifactId>
      <version>2.5</version>
      <scope>compile</scope>
    </dependency>

在web.xml中配置如下:

<!--解决seesion不一致-->
  <filter>
    <description>跨域过滤器</description>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    <init-param>
      <param-name>cors.allowOrigin</param-name>
      <param-value>*</param-value>
    </init-param>
    <init-param>
      <param-name>cors.supportedMethods</param-name>
      <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
    </init-param>
    <init-param>
      <param-name>cors.supportedHeaders</param-name>
      <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
    </init-param>
    <init-param>
      <param-name>cors.exposedHeaders</param-name>
      <param-value>Set-Cookie</param-value>
    </init-param>
    <init-param>
      <param-name>cors.supportsCredentials</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>

配置好之后,就可以获取到值,如果还获取不到,可能是其他问题,请看别的文章

Logo

前往低代码交流专区

更多推荐