如何链接Django和React URL来执行操作



在Django中,我的登录URL设置为"api/auth/login"。当给定用户名和密码时,它会将该用户登录。运行"python manage.py runserver",它会把该URL放在"http://127.0.0.1:8000/api/auth/login'

然而,我的React项目,当运行"纱线启动"时http://localhost:3000/'并为其提供扩展名"api/auth/login",它尝试的url为'http://localhost:3000/api/auth/login"。

这不起作用,但如果我将URL扩展名替换为http://127.0.0.1:8000/api/auth/login',登录正常工作。

如何让URL与我的React应用程序配合使用?或者这不是必须要解决的问题吗?我确实计划在某个地方主持这个项目,但还不确定URL会如何运作。。

一个选项是在package.json中设置proxy

第二个选项是设置axoisbaseURL:

// add in your code before main component definition
// for example in App.js
import axios from "axios";
axios.defaults.baseURL = "http://127.0.0.1:8000";

我更喜欢第二种方法。对于进行生产构建,可以很容易地用环境变量覆盖它。

import axios from "axios";
axios.defaults.baseURL = REACT_APP_SERVER_URL

记住在Django服务器中设置CORS头(我正在编写教程,其中有一个如何做到这一点的示例(。

您正在另一个端口上托管react应用程序,这就是为什么当您在不提及主机的情况下提出请求时,它会附加到您当前的主机上,即127.0.0.1:3000。我建议你写";代理":"127.0.0.1:8000'(请参阅https://create-react-app.dev/docs/proxying-api-requests-in-development/)并重新启动您的react服务器或使用django服务器的完整url,即127.0.0.1:8000/

相关内容

  • 没有找到相关文章

最新更新