fetch请求怎么加入session?

JeremyChen
  • 2.1k

项目用的是fetch做的请求,后台说可以用session来处理会话权限!但是请求头中怎么加入session。

查了查资料说是request.getSession 可以获取到,但是在fetch封装的请求中找不到request,有些疑惑?应该怎么封装。。。

export const get = (url, query = {}, options = {}) => {
  const defaultOpt = {
    method: 'GET',
    timeout: requestTimeOut,
    credentials: 'include',
    headers: { ...options }
  }

  defaultOpt.headers = completeHeader(defaultOpt.headers)
  console.log(defaultOpt)
  return fetch(getUrl(url, query), defaultOpt).then(checkStatus).then(parseJSON)
}

上面是其中的一个例子

网上又说加入credentials: 'include',但是还是不太明白。

回复
阅读 4.3k
3 个回答

一般 sessionid 放在 cookie 中的, session 保存在后台, 向服务器发送请求会带上同域下的 cookie,不需手动设置

就是加上credentials啊,fetch请求header默认不带cookie,后端就获取不到sessionid,加上才行。

fetch默认不带cookie 如果是同域下的话要加 mode

const defaultOpt = {
    mode: "same-origin",
    credentials: "same-origin",
    ...
}
宣传栏