前端首页查询所有功能代码:

    queryAll()  {
      fetch("http://localhost:8096/schedule/all",
          {
                method: 'GET',
                credentials: 'include'
              })
          .then((response)  =>  {
            if  (response.ok)  {
              return  response.json();
            }
            else  {
              return  Promise.reject(new  Error("Failed  to  fetch  data"));
            }
          })
          .then((data)  =>  {
            this.scheduleData  =  data;  //  将返回的数据赋值给scheduleData
            this.searchResult  =  data;
            console.log(data)
          })
          .catch((error)  =>  {
            console.error(error);
          });
    }

出现下列报错:

解决方案,在cors配置类加上以下代码,不要使用通配符:

 corsConfiguration.addAllowedOrigin("http://localhost:5173"); // 设置访问源地址
 corsConfiguration.addAllowedOrigin("http://localhost:5174"); // 设置访问源地址

因为登录界面也有跨域问题,所以5174也要加进去。

还有以下报错:

解决方案,在拦截器功能代码第一行加上以下代码:

response.setHeader("Access-Control-Allow-Credentials", "true");

做完上述步骤后,跨域问题是解决了,用火狐浏览器也能得到token值了。其他功能也可以采用类似方法解决跨域问题。

12-10 19:43