最近在用nuxt写一个项目,遇到了登录后,请求后台接口的时候,需要带上登录的cookie信息问题。
axios默认是不带cookie的,可以通过修改设置,让请求的时候把cookie带上。
在公共的js文件里,添加下面两句话:
import axios from 'axios’
axios.defaults.withCredentials=true;
这样,我们前端请求接口的时候,就会自动带上cookie。
但是,如果我们通过asyncData请求接口,因为页面刷新的时候,它是从服务器请求接口的,没有cookie信息。那怎么办呢?
我们可以通过它的参数获取到cookie信息,然后把cookie设置到axios的头部信息里就可以了。代码如下:
import axios from ‘axios’
async asyncData (context) {
axios.defaults.headers.post['Cookie'] = context.req.headers.cookie
axios.post(url,data).then((res) => {
console.log(res)
})
}
我上面是给post请求设置的,如果是别的请求方式,把post改成相应的请求方式就可以了。
关注我的公众号,可以看到更多精彩的文章