fetch请求怎么加入session?

项目用的是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',但是还是不太明白。

阅读 6.5k
3 个回答

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

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

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

const defaultOpt = {
    mode: "same-origin",
    credentials: "same-origin",
    ...
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题