我在本地托管一个 django 站点。如果baseQuery有这样的相对路径
baseQuery: fetchBaseQuery({ baseUrl: '/api' })
,那么会话ID会自动发送到标头中
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-CSRFToken': Cookies.get('csrftoken')
}
如果前端和后端部分托管在不同的端口上并且baseQuery中的路径是绝对的
fetchBaseQuery({ baseUrl: 'http://localhost:8000/api' })
(当 React 运行在 :3000 时)
那么会话 ID 不会附加到请求中,并且 Django 会在每个响应中发送一个新的会话 ID。
这是正常行为吗?如何改变?
原来这样添加
credentials: "include"
就够了
baseQuery: fetchBaseQuery({ baseUrl: 'http://localhost:8000/api', credentials: "include" })
您可以尝试像这样包含私有 api 的凭据
const public = createApi({ // -- )
const 私有 = createApi({ 凭证:“包括” })