小编Lev*_*kov的帖子

`setRequestHeader` 无法使用源代码作为标头值执行,axios 和 React

我遇到了一个非常奇怪的问题,实现 axios 拦截器来处理过期的令牌并刷新它。

\n

环境

\n

我正在使用访问和刷新令牌实施 JWT 身份验证。

\n

当请求发送到需要 JWT 身份验证的 API 路由时,请求拦截器会确保标头包含带有不记名令牌的授权。响应拦截器检查是否需要新的访问令牌,发送刷新请求,最后使用新配置更新 axios 实例。

\n

我按照 Dave Gray 的视频编写了代码,但使用了 TypeScript。

\n

问题

\n

测试此代码时,我将刷新令牌生存期设置为非常长,同时将访问令牌生存期设置为 5 秒。过期后,当对受保护路由的请求发生时,一切都按照计划进行\xe2\x80\x94来自后端的日志包含两个成功完成的请求:(1)到带有 401 响应的受保护路由,然后(2 ) 刷新请求。

\n

此时,我在浏览器控制台(Chrome 和 Safari)中看到 DOMException,它指出setRequestHeader由于源代码函数不是有效的标头值而无法执行。当然,事实并非如此!这段代码是这样的

\n

代码

\n
const axiosPrivate = axios.create({\n  baseURL: BASE_URL,\n  headers: { "Content-Type": "application/json" },\n  withCredentials: true,\n});\n\ninterface IRequestConfig extends AxiosRequestConfig {\n  sent?: boolean;\n}\n\nconst useAxiosPrivate = () => {\n  const { auth } = useAuth()!;\n  const refresh = …
Run Code Online (Sandbox Code Playgroud)

interceptor http-headers typescript reactjs axios

5
推荐指数
1
解决办法
2864
查看次数

在方法中重新分配“自我”:Python 3.8

在类的方法中:

def weight(self, grid):

    ...

    if self.is_vertical:
        self = self.T

    ...


Run Code Online (Sandbox Code Playgroud)

self如果条件为真,我想重新分配给它的转置值。根据 -if语句,我想self稍后在其原始或转置条件下在方法中使用。

据我了解,在方法中,self只是一个参数名称,而不是真正的引用或指向类实例的指针,如在 C++ 或类似语言中,因此我可以自由地重新分配它以在方法范围内使用.

我的问题是为什么 PyCharm 的检查信息警告我

...第一个参数,例如“self”或“cls”,在方法中重新分配。在大多数可以想象的情况下,这种重新分配没有意义,它表明一个错误。

虽然它工作正常?为什么会提示错误?

python self

0
推荐指数
1
解决办法
185
查看次数

标签 统计

axios ×1

http-headers ×1

interceptor ×1

python ×1

reactjs ×1

self ×1

typescript ×1