gpt4 book ai didi

javascript - Sapper 中的 Axios 请求两次?

转载 作者:行者123 更新时间:2023-12-05 06:23:08 27 4
gpt4 key购买 nike

我正在使用 axiospreload 内外发送请求。但我不明白出于某种原因我的后端提示必须提供 JWT。我在另一个前端使用相同的后端(Svelte 仅与 Axios 一起使用)并且没有提示。但是在 Sapper 中,当我使用带有凭据的 axios 请求时(是的)。我正在获取 jwt 必须提供。

当我在后端记录请求 Urls 时,我开始知道 Sapper 向后端发送请求 URL 两次,一个带有凭据,一个没有凭据,这导致必须提供 JWT。我很确定带有凭据的请求来自 axios,但没有凭据的请求来自魔法。这种魔法发生在哪里?为什么?

<script context="module">

import axios from 'axios'

const ax = axios.create({
withCredentials: true,
baseURL: 'http://localhost:7000',
headers: { 'Content-Type': 'application/json' },
})

export async function preload (page) {
const {data} = await ax.get(`/profile/${page.query.type}`)
let profiles = data
return { profiles, page }
}

</script>

最佳答案

我遇到了类似的问题(在预加载之外),我的问题是 Sappers 服务器端代码发布了第一个请求,而 Sappers 客户端代码发布了第二个请求(这是因为 Sapper如果我理解正确的话,它有服务器端渲染,并且 Sapper 也在运行你的代码,然后再将它发送到它第二次运行的浏览器)。

您能否添加一些 if 语句来检查 if (process.browser) { [...] }(或 window 或其他浏览器是否存在-独占变量)在 axios 请求之前?

服务器端代码显然无法从用户浏览器访问 cookie 或 localStorage,因此 JWT 将为空。

关于javascript - Sapper 中的 Axios 请求两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com