Nuxt3 中使用 $fetch 内置函数请求获取不到header问题
目前我的前端使用Nuxt3
进行开发,服务端使用SpringBoot3.2
开发,目前遇到的问题是服务端给前端的Response
中设置了一个token
自定义头,但是通过$fetch
的 onResponse
获取时发现headers为空。
目前服务端已经配置了跨域和相关头暴露的设置,代码如下:
package vip.huhailong.pengyouquan.config.intercepter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Autowired
StringRedisTemplate redisTemplate;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthInterceptor(redisTemplate))
.addPathPatterns("/**")
.excludePathPatterns("/auth/**");
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "DELETE", "PUT")
.allowedHeaders("*")
.exposedHeaders("token");
}
}
目前跨域配置没有问题,然后使用 exposeheaders
暴露出了 token
自定义头。
在使用浏览器请求时,响应标头可以看到token值,但是$fetch
无法获取,前端代码如下:
const response = await $fetch.raw('/auth/login', {
method: 'post',
baseURL: config.public.apiURL,
headers: {
'Content-Type': 'application/json',
},
body: {
email: email.value,
verificationCode: verificationCode.value
}
})
console.log(response)
控制台发现对应的headers
为空。
但是我使用axios框架请求时是可以获取到headers
的,刚开始使用nuxt
和$fetch
这种方式,有点搞不懂了,我该怎么做才能获取到头呢?