gpt4 book ai didi

django - React Django REST 框架 session 不持久/工作

转载 作者:行者123 更新时间:2023-12-04 00:25:32 24 4
gpt4 key购买 nike

我正在开发一个以 Django Rest Framework 作为后端,React 作为前端的项目。当我最初在某个函数/ View 中设置 session 变量时,稍后当我尝试通过 axios 调用访问不同的 View 时,并且在该 View 中,如果我尝试访问我之前创建的 session 变量,则会出现 KeyError。 session 似乎没有存储。

我用谷歌搜索我遇到了我面临的类似问题。

Django rest framework Reactjs sessions not working

我按照这个过程添加了 { withCredentials: true } 在 axios 调用中。现在我得到不同的错误。现在问题是无法访问后端。我收到一条错误消息 访问 XMLHttpRequest ' http://127.0.0.1:8000/url/ '来自原点' http://localhost:3000 ' 已被 CORS 策略阻止

我再次搜索了我遇到的问题,发现我必须在 django settings.py 中添加 CORS_ORIGIN_WHITELIST

我跟着下面的帖子

Django Python rest framework, No 'Access-Control-Allow-Origin' header is present on the requested resource in chrome, works in firefox

我像这样添加了 CORS_ORIGIN_WHITELIST

CORS_ORIGIN_WHITELIST = [
' http://localhost:3000 ',
' http://127.0.0.1:3000 '
]

我仍然面临同样的问题。我不知道出了什么问题。任何人都可以帮助我解决这个问题。

谢谢你。

最佳答案

最后经过这么多研究,我找到了解决方案。
在我们导入 axios 进行调用的文件中,在您的导入下方设置默认 header
axios.defaults.withCredentials = true;
例子:

import axios from "axios";

axios.defaults.withCredentials = true;

axios.get("url")
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error);
});

完成后,转到您的 settings.py 文件并添加以下配置
CORS_ORIGIN_ALLOW_ALL = 真
CORS_ALLOW_CREDENTIALS = 真
所以在此之后,如果您设置一个 session 变量并稍后在任何 View 中访问它,您将能够获得您之前存储的值。
这个解决方案对我有用。希望如果有人有同样的问题,它也适用于他们。 :)
注意
如果 session 未存储在 下本地主机:3000 然后确保您通过 访问您的前端应用程序127.0.0.1:3000 .如果您通过 访问前端应用程序本地主机 如果您的后端在 上运行127.0.0.1 那么 session cookie 将被设置为 127.0.0.1 ,因此将前端 URL 从 更改为本地主机:3000 127.0.0.1:3000 将解决您的问题。

关于django - React Django REST 框架 session 不持久/工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305141/

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